json-当没有 obj 类型时,简单与 jackson 解析 json
json-simple versus jackson for parsing json when do not have obj type
要使用 jackson API 将 json 字符串转换为 pojo,可以使用:
String jsonInString = "{\"age\":33,\"messages\":[\"msg 1\",\"msg 2\"],\"name\":\"mkyong\"}";
User user1 = mapper.readValue(jsonInString, User.class);
这需要创建 class 匹配 json 字符串结构的用户。
使用 json-简单 API 可以改用:
JSONObject json = (JSONObject)new JSONParser().parse(jsonInString);
使用json-简单不需要包含匹配json格式的pojo。 jackson 可以使用类似的吗? json-simple 不那么冗长,因为不必创建匹配 json 结构的 class。
Jackson 可以将 json 字符串反序列化为通用映射:
Map<String, Object> m = new ObjectMapper().readValue(jsonInString, Map.class);
for (Map.Entry<String, Object> entry : m.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue() + "(" + entry.getValue().getClass().getName() + ")");
}
输出:
age -> 33(java.lang.Integer)
messages -> [msg 1, msg 2](java.util.ArrayList)
name -> mkyong(java.lang.String)
你可以使用类似的API
JsonNode node = mapper.readTree(jsonInString);
要使用 jackson API 将 json 字符串转换为 pojo,可以使用:
String jsonInString = "{\"age\":33,\"messages\":[\"msg 1\",\"msg 2\"],\"name\":\"mkyong\"}";
User user1 = mapper.readValue(jsonInString, User.class);
这需要创建 class 匹配 json 字符串结构的用户。
使用 json-简单 API 可以改用:
JSONObject json = (JSONObject)new JSONParser().parse(jsonInString);
使用json-简单不需要包含匹配json格式的pojo。 jackson 可以使用类似的吗? json-simple 不那么冗长,因为不必创建匹配 json 结构的 class。
Jackson 可以将 json 字符串反序列化为通用映射:
Map<String, Object> m = new ObjectMapper().readValue(jsonInString, Map.class);
for (Map.Entry<String, Object> entry : m.entrySet()) {
System.out.println(entry.getKey() + " -> " + entry.getValue() + "(" + entry.getValue().getClass().getName() + ")");
}
输出:
age -> 33(java.lang.Integer)
messages -> [msg 1, msg 2](java.util.ArrayList)
name -> mkyong(java.lang.String)
你可以使用类似的API
JsonNode node = mapper.readTree(jsonInString);