我对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();