GMs*_*soF 23 java json jackson
如下面的代码:
public class Main {
public class innerPerson{
private String name;
public String getName(){
return name;
}
}
public static void main(String[] args){
ObjectMapper om = new ObjectMapper();
Map<innerPerson, String> map = new HashMap<innerPerson,String>();
innerPerson one = new Main().new innerPerson();
one.name = "david";
innerPerson two = new Main().new innerPerson();
two.name = "saa";
innerPerson three = new Main().new innerPerson();
three.name = "yyy";
map.put(one, "david");
map.put(two, "11");
map.put(three, "true");
try {
String ans = om.writeValueAsString(map);
System.out.println(ans);
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
{"Main$innerPerson@12d15a9":"david","Main$innerPerson@10a3b24":"true","Main$innerPerson@e91f5d":"11"}
Run Code Online (Sandbox Code Playgroud)
是否可以使地图的关键字成为精确数据而不是对象的地址?怎么样?
Pro*_*uce 37
我们可以在使用JSON时将对象设置为地图中的键吗?
严格地说,没有.JSON 映射数据结构是JSON 对象数据结构,它是名称/值对的集合,其中元素名称必须是字符串.因此,虽然将JSON对象感知并绑定为映射是合理的,但JSON映射键也必须是字符串 - 再次,因为JSON映射是JSON对象.有关JSON对象(映射)结构的规范,请访问http://www.json.org.
是否可以使地图的关键字成为精确数据而不是对象的地址?怎么样?
Costi正确描述了Jackson的默认映射键序列化程序的行为,它只调用toString()Java映射键的方法.不是修改toString()方法以返回映射键的JSON友好表示,而且使用Jackson实现自定义映射键序列化也是可能且相当简单.这样做的一个例子可以在Jackson的Serializing Map <Date,String>中找到.
| 归档时间: |
|
| 查看次数: |
21978 次 |
| 最近记录: |