用于实现映射和列表的JSON值的Java包装器类
是否有一个常用的库具有用于以类型安全方式表示json的类?我正在寻找一个json对象存储在映射中,json数组存储在列表中的映射 我想做的是这样的:用于实现映射和列表的JSON值的Java包装器类,java,json,jackson,Java,Json,Jackson,是否有一个常用的库具有用于以类型安全方式表示json的类?我正在寻找一个json对象存储在映射中,json数组存储在列表中的映射 我想做的是这样的: myJson.get("myInt").asInt(); myJson.get("myString").asString(); .get()应返回缺少的节点对象,因此不需要进行空检查 Jackson是一个非常好的库,可以完成所有这些,但是Jackson JsonObject和JsonArray类没有实现映射和列表。您必须将JSON转换为所需的类型
myJson.get("myInt").asInt();
myJson.get("myString").asString();
.get()
应返回缺少的节点对象,因此不需要进行空检查
Jackson是一个非常好的库,可以完成所有这些,但是Jackson JsonObject和JsonArray类没有实现映射和列表。您必须将JSON转换为所需的类型。下面的示例将其转换为
映射
。如果无法转换,它将抛出异常
public class JsonMapExample {
public static void main(String[] args) {
String json = "{\"name\":\"mkyong\", \"age\":\"29\"}";
Map<String,String> map = new HashMap<String,String>();
ObjectMapper mapper = new ObjectMapper();
try {
map = mapper.readValue(json, new TypeReference<HashMap<String,String>>(){});
} catch (JsonMappingException e) {
e.printStackTrace();
}
}
}
public类JsonMapExample{
公共静态void main(字符串[]args){
字符串json=“{\'name\':\'mkyong\',\'age\':\'29\'”;
Map Map=newhashmap();
ObjectMapper mapper=新的ObjectMapper();
试试{
map=mapper.readValue(json,newTypeReference(){});
}捕获(JsonMappingException e){
e、 printStackTrace();
}
}
}
这通常是通过网络发送序列化对象时发生的情况,编组时会丢失类型安全性,并通过解组将其重新添加到另一端
见: