Jackson - 不带括号、逗号和 = 提取数据?
Jackson - Extract Data without Brackets, Commas, and =?
我对 Jackson 了解不多,我使用它只是因为我需要共享从 Python 到 Java 的数据。反正我的代码很简单
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> data = mapper.readValue(new File(FileName), Map.class);
System.out.println(data.get("SomeInput"));
这是我得到的:
{Y=0.830168776371308, Z=0.16877637130801687, X=0.0010548523206751054}
我真的只是希望能够使用 data
检索保存数据的某种类型的数据结构,而无需打印出 {} 和 = 等。有没有办法做到这一点?
我有一组节点,每个标签一个节点(比如ADP)。我希望能够为 ADP 节点提供 0.830...我可以对字符串执行此操作,但它会涉及一些非常烦人的字符串拆分。我假设一定有一种简单的方法可以做到这一点?
编辑:
我正在加载的 json 文件中的数据如下所示
{
"!": {
"X": 1.0
},
"$": {
"X": 1.0
},
"&": {
"X": 1.0
},
"/m": {
"Y": 1.0
},
.....
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> data = mapper.readValue(new File(FileName), Map.class);
Map<String, Double> tags = (Map) data.get("SomeInput");
double value = 0;
for (String tag : tags.keySet()) {
value = tags.get(tag); //Here I get all the data from the tags inside the input. E.g.: 0.830168776371308
System.out.println(value); //It will print ADP, ADV and X values.
}
关于如何使用 Map
,您已经得到了很好的答案。但为了完整起见,还有另一种可能有时效果更好,作为树阅读:
JsonNode root = mapper.readTree(new File(FileName));
JsonNode inputs = root.path("SomeInput");
String exclValue = inputs.path("!").asString();
我对 Jackson 了解不多,我使用它只是因为我需要共享从 Python 到 Java 的数据。反正我的代码很简单
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> data = mapper.readValue(new File(FileName), Map.class);
System.out.println(data.get("SomeInput"));
这是我得到的:
{Y=0.830168776371308, Z=0.16877637130801687, X=0.0010548523206751054}
我真的只是希望能够使用 data
检索保存数据的某种类型的数据结构,而无需打印出 {} 和 = 等。有没有办法做到这一点?
我有一组节点,每个标签一个节点(比如ADP)。我希望能够为 ADP 节点提供 0.830...我可以对字符串执行此操作,但它会涉及一些非常烦人的字符串拆分。我假设一定有一种简单的方法可以做到这一点?
编辑:
我正在加载的 json 文件中的数据如下所示
{
"!": {
"X": 1.0
},
"$": {
"X": 1.0
},
"&": {
"X": 1.0
},
"/m": {
"Y": 1.0
},
.....
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> data = mapper.readValue(new File(FileName), Map.class);
Map<String, Double> tags = (Map) data.get("SomeInput");
double value = 0;
for (String tag : tags.keySet()) {
value = tags.get(tag); //Here I get all the data from the tags inside the input. E.g.: 0.830168776371308
System.out.println(value); //It will print ADP, ADV and X values.
}
关于如何使用 Map
,您已经得到了很好的答案。但为了完整起见,还有另一种可能有时效果更好,作为树阅读:
JsonNode root = mapper.readTree(new File(FileName));
JsonNode inputs = root.path("SomeInput");
String exclValue = inputs.path("!").asString();