http://code.alibabatech.com/wiki/display/FastJSON/TypeReference
2011-06-25 15:47
435 查看
public static class Bean {
private int id;
private String name;
public Bean(){
}
public Bean(int id, String name){
this.id = id;
this.name = name;
}
public int getId() {return id;}
public void setId(int id) { this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
/////////////////////
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
String text;
{
List list = new ArrayList();
List mapList = new ArrayList();
Map<String, Bean> map = new HashMap<String, Bean>();
map.put("a", new Bean(123, "马加爵"));
map.put("b", new Bean(234, "药家鑫"));
map.put("c", new Bean(456, "刘+伟"));
mapList.add(map);
list.add(mapList);
text = JSON.toJSONString(list);
}
System.out.println(text);
// text = [[{"b":{"name":"药家鑫","id":234},"c":{"name":"刘+伟","id":456},"a":{"name":"马加爵","id":123}}]]
List<List<Map<String, Bean>>> list = JSON.parseObject(text, new TypeReference< List<List<Map<String, Bean>>> >() {}); // 注意这里
Map<String, Bean> map = list.get(0).get(0);
Assert.assertEquals(3, map.size());
Assert.assertEquals(123, ((Bean) map.get("a")).getId());
Assert.assertEquals(234, ((Bean) map.get("b")).getId());
Assert.assertEquals(456, ((Bean) map.get("c")).getId());
Assert.assertEquals("马加爵", ((Bean) map.get("a")).getName());
Assert.assertEquals("药家鑫", ((Bean) map.get("b")).getName());
Assert.assertEquals("刘+伟", ((Bean) map.get("c")).getName());
private int id;
private String name;
public Bean(){
}
public Bean(int id, String name){
this.id = id;
this.name = name;
}
public int getId() {return id;}
public void setId(int id) { this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
}
/////////////////////
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
String text;
{
List list = new ArrayList();
List mapList = new ArrayList();
Map<String, Bean> map = new HashMap<String, Bean>();
map.put("a", new Bean(123, "马加爵"));
map.put("b", new Bean(234, "药家鑫"));
map.put("c", new Bean(456, "刘+伟"));
mapList.add(map);
list.add(mapList);
text = JSON.toJSONString(list);
}
System.out.println(text);
// text = [[{"b":{"name":"药家鑫","id":234},"c":{"name":"刘+伟","id":456},"a":{"name":"马加爵","id":123}}]]
List<List<Map<String, Bean>>> list = JSON.parseObject(text, new TypeReference< List<List<Map<String, Bean>>> >() {}); // 注意这里
Map<String, Bean> map = list.get(0).get(0);
Assert.assertEquals(3, map.size());
Assert.assertEquals(123, ((Bean) map.get("a")).getId());
Assert.assertEquals(234, ((Bean) map.get("b")).getId());
Assert.assertEquals(456, ((Bean) map.get("c")).getId());
Assert.assertEquals("马加爵", ((Bean) map.get("a")).getName());
Assert.assertEquals("药家鑫", ((Bean) map.get("b")).getName());
Assert.assertEquals("刘+伟", ((Bean) map.get("c")).getName());
相关文章推荐
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- com.alibaba.fastjson.JSONException: default constructor not found. class com.anerfa.axdblue_code.ho
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- dubbo 启动:无法读取方案文档 'http://code.alibabatech.com/sch,原因为 1) 无法找到文档; 2) 无法读取文档; 3) ...
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- storm启动spring项目Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'处理
- 无法读取方案文档 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- com.alibaba.fastjson.JSONException: exepct '[', but {, type : class com.lvche.pocketscore.bean2.Room
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'
- 部署dubbo服务报错:Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'问题解决方法
- Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd
- dubbo项目启动报无法读取方案文档 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd', 原因为 1) 无法找到文档; 2) 无法读取文档;
- http://code.alibabatech.com/schema/dubbo/dubbo.xsd 在xml报错解决方案
- dubbo 启动:无法读取方案文档 'http://code.alibabatech.com/sch,原因为 1) 无法找到文档; 2) 无法读取文档; 3) ...
- dubbo使用过程中报错:Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd',
- 解决FastJson com.alibaba.fastjson.JSONObject cannot be cast to的问题