如何解析具有值的数据类型的JSON?

时间:2019-02-23 17:04:19

标签: java json gson

我对JSON数据有疑问。 在我的Json中,它具有带有值的数据类型。不知道如何解析。

例如:

 {
"id": "123456",
"name": {
    "firstName": {
        "String": "Nathon"
    },
    ,
    "lastName": {
        "String": "Jason"
    }
 }. 

请对此提供帮助

public String map(ObjectNode jsonNode) throws Exception {
                return  value.get("id");
            }

我尝试使用上面的示例代码,但是我只能解析“ id”

3 个答案:

答案 0 :(得分:1)

如果您使用的是Jackson2,则将name设为JsonNode

JsonNode nameNode = value.path("name");

然后再次将firstNamelastName设为JsonNode

JsonNode firstName = nameNode.path("firstName");
JsonNode lastName = nameNode.path("lastName");

JsonNode firstNameJsonNode lirstName中获取字符串值

String name1 = firstName.path("string").asText();
String name2 = lastName.path("string").asText();

答案 1 :(得分:0)

当您的json反序列化为ObjectNode时,它实际上在内部表示为映射键/值,其中值本身也可以是您所使用的映射。从视觉上看,它会是这样的。 因此,您需要使用get(fieldName)遵循此结构来获取值或ObjectNode(如果它是嵌套的)。请记住,如果返回值是ObjectNode,则只需打印它就将返回它代表的json片段,因此您需要在该对象上再次调用'get(fieldName)'。

enter image description here

答案 2 :(得分:0)

首先,您不必提及数据类型即可正确解析JSON,只需创建一个与JSON结构匹配的POJO类,然后使用GSON将JSON解析为一个Java类