我正在尝试使用Java中的重复键来解析嵌套的Json
。我经历了其他类似的问题,但找不到解决方案。我尝试了使用Jackson流API的方法,但它只打印第一个键的值而忽略第二个重复的键。请帮助。谢谢。
码:
public class JacksonJson {
public static void main(String args[]) throws IOException {
/
JsonFactory factory = new JsonFactory();
JsonParser parser = factory.createParser(new File("a.json"));
parser.nextToken();
while (parser.nextToken() != JsonToken.END_OBJECT) { //loop until "}"
String fieldName = parser.getCurrentName();
if (fieldName.equals("A")) {
parser.nextToken();
System.out.println("Value : " + parser.getText());
}
/*else { // unexpected token, generate error
throw new IOException("Unrecognized field '"+fieldName+"'");
}*/
}
parser.close();
}
}
Json文件:
{
"Data": {
"C": {
"S": {
"M": {},
"A": "first"
}
},
"C": {
"S": {
"M": {}
"A": "Second",
}
}
}
}
最佳答案
来自the JSON specification
名字是一个
串。每个名称后都有一个冒号,将名称分开
从值。单个逗号将值与后跟
名称。对象中的名称应唯一。
许多JSON库提供了将json映射到对象的功能。考虑一下,如果名称不是唯一的,它们甚至应该如何工作?
当然,您可以尝试自己解析它,并在内部将其重命名为C1,C2 ...,但是更容易接受这种情况。
关于java - 用重复键解析Json,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50578992/