我对JSON数据有疑问。 在我的Json中,它具有带有值的数据类型。不知道如何解析。
例如:
{
"id": "123456",
"name": {
"firstName": {
"String": "Nathon"
},
,
"lastName": {
"String": "Jason"
}
}.
请对此提供帮助
public String map(ObjectNode jsonNode) throws Exception {
return value.get("id");
}
我尝试使用上面的示例代码,但是我只能解析“ id”
答案 0 :(得分:1)
如果您使用的是Jackson2
,则将name
设为JsonNode
JsonNode nameNode = value.path("name");
然后再次将firstName
和lastName
设为JsonNode
JsonNode firstName = nameNode.path("firstName");
JsonNode lastName = nameNode.path("lastName");
从JsonNode firstName
和JsonNode lirstName
中获取字符串值
String name1 = firstName.path("string").asText();
String name2 = lastName.path("string").asText();
答案 1 :(得分:0)
当您的json反序列化为ObjectNode
时,它实际上在内部表示为映射键/值,其中值本身也可以是您所使用的映射。从视觉上看,它会是这样的。
因此,您需要使用get(fieldName)遵循此结构来获取值或ObjectNode
(如果它是嵌套的)。请记住,如果返回值是ObjectNode
,则只需打印它就将返回它代表的json片段,因此您需要在该对象上再次调用'get(fieldName)
'。
答案 2 :(得分:0)
首先,您不必提及数据类型即可正确解析JSON,只需创建一个与JSON结构匹配的POJO类,然后使用GSON将JSON解析为一个Java类