转换遇到这么一个问题,最后定位是有个字段名为"agent"引起的。
默认被转换为net.sf.ezmorph.bean.MorphDynaBean,但是我又需要这个字段名叫"agent",那就要定义一个规则覆盖原有的。
比如MyResponse类中有一句 private MyAgent agent;要定义规则确保这个agent字段会映射到我自己的MyAgent类。
即从
JSONObject json = JSONObject.fromObject("json字符串");
MyResponse response = (MyResponse) JSONObject.toBean(json, MyResponse.class);
改为
Map<String, Class<MyAgent>> map = new HashMap<>();
map.put("agent", MyAgent.class);
JSONObject json = JSONObject.fromObject("json字符串");
MyResponse response = (MyResponse) JSONObject.toBean(json, MyResponse.class, map);
应该会有其他字段类似"agent",有空去看看官方文档。