0

无法为相应的 Json 字符串创建 java 类,因为它的 json 文件太大,并且会动态更改。如果有人可以发布解决方案,我会很高兴。需要帮助....下面是示例代码:..

public class rough {
    public static void main(String[] args) throws IOException {
        String jsondata="{"data":[{"MsgType":"BTO","EventType":"901","Role":"Sender","Version":"2.3"}, {"MsgType":"BTO","EventType":"901","Role":"Sender","Version":"2.4"},{"MsgType":"BTO","EventType":"901","Role":"Sender","Version":"2.5"},{"MsgType":"BTO","EventType":"901","Role":"Sender","Version":"2.6"},{"MsgType":"BTO","EventType":"901","Role":"Sender","Version":"2.7"}]}";
        ObjectMapper objectMapper=new ObjectMapper();
        ValidationProfile profile=objectMapper.readValue(jsondata,ValidationProfile.class);
        System.out.println("profile:"+profile.toString());
    }

    public class ValidationProfile {
        public List<String> data;
    }
}
4

2 回答 2

0

从开头的 Json 字符串中删除“数据”。为我工作。

JsonNode profile=objectMapper.readTree(jsondata);

于 2020-11-08T20:13:28.017 回答
0

您正在尝试将 JSON 对象反序列化为 JSON 字符串。你不能这样做。

作为一个简单的修复(但它并不完美)将您的ValidationProfile课程更改为:

public static class ValidationProfile {
  public List<Map<String, String>> data;
}

更好的方法是为整个 JSON 结构引入相应的类:


public static class ValidationProfile {
  private List<Event> data;

  // getters
}


public static class Event {
        
  @JsonProperty("MsgType")
  private String msgType;
  @JsonProperty("EventType")
  private String eventType;
  @JsonProperty("Role")
  private String role;
  @JsonProperty("Version")
  private String version;

  // getters
        
}
于 2020-11-08T14:47:11.750 回答