代码之家  ›  专栏  ›  技术社区  ›  nad87563

使用Jackson解析器解析JSON字符串

  •  0
  • nad87563  · 技术社区  · 7 年前

    我可以解析下面的JSON:

    {
        "jobId": "xxx",
        "jobName": "xxx",
        "jobInput": "xxx"
    }
    
    final ObjectMapper mapper = new ObjectMapper();
    Map<?, ?> map = mapper.readValue(jsonString, Map.class);
    

    我需要用Jackson解析器解析Java下面的JSON字符串。

    {
    "Test1": {
        "jobId": "xxx",
        "jobName": "xxx",
        "jobInput": "xxx"
      },
    "Test2": {
        "jobId": "xxx",
        "jobName": "xxx",
        "jobInput": "xxx"
      }
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   cassiomolin    7 年前

    对于Jackson,您可以执行以下操作:

    ObjectMapper mapper = new ObjectMapper();
    TypeReference<Map<String, Object>> typeRef = new TypeReference<Map<String, Object>>() {};
    Map<String, Object> data = mapper.readValue(json, typeRef);
    

    如果您喜欢使用自定义类来保存值而不是 Map ,使用:

    ObjectMapper mapper = new ObjectMapper();
    Data data = mapper.readValue(json, Data.class);
    
    public class Data {
    
        @JsonProperty("Test1")
        private Job test1;
    
        @JsonProperty("Test2")
        private Job test2;
    
        // Default constructor, getters and setters
    }
    
    public class Job {
    
        private String jobId;
    
        private String jobName;
    
        private String jobInput;
    
        // Default constructor, getters and setters
    }