1.问题现象:
在ssm项目中,一个controller返回Msg对象(自定义Javabean对象),然后利用SpringMVC的@ResponseBody注解自动将Msg对象转化成JSON格式,返回给客户端,但是客户端接收到的json字符串只有code和msg属性,map属性消失了。这是为什么?
补充:
1.Msg对象包含三个属性,int code;String msg;HashMap map;
2.我的map集合里面放了一个键值对是这样的:key="furnList",value=furnList。furnList是一个list集合,包含的对象类型是Furn
3.Furn是自定义Javabean,包含的属性有
private Integer id;
private String name;
private String maker;
private BigDecimal price;
private Integer sales;
private Integer stock;
2.询问过程:
3.找出问题所在
原因是在Msg对象中没有给map属性设置get和set方法,导致map属性 序列化失败
4.总结:
要想转成json格式,需要所有属性都是可序列化的(属性的属性也包括在内),即确保每个属性都有对应的get和set方法。