JSON转各种格式数据
需要阿里巴巴旗下开发的jar包 com.alibaba.fastjson
链接:fastjson maven中央仓库
- SerializeWriter:相当于StringBuffer
- JSONArray:相当于List
- JSONObject:相当于Map<String, Object>
- JSON反序列化没有真正数组,本质类型都是List
// List -> JSON array
List<Bar> barList = new ArrayList<Bar>();
barList.add(new Bar());
barList.add(new Bar());
barList.add(new Bar());
String json = JSON.toJSONString(barList, true);
System.out.println(json);
// JSON array -> List
List<Bar> barList1 = JSON.parseArray(json, Bar.class);
for (Bar bar : barList1) {
System.out.println(bar.toString());
}
// Map -> JSON
Map<String, Bar> map = new HashMap<String, Bar>();
map.put("a", new Bar());
map.put("b", new Bar());
map.put("c", new Bar());
String json = JSON.toJSONString(map, true);
System.out.println(json);
// JSON -> Map
Map<String, Bar> map1 = (Map<String, Bar>) JSON.parse(json);
for (String key : map1.keySet()) {
System.out.println(key + ":" + map1.get(key));
}
String[] arr_String = {"a","b","c"};
String json_arr_String = JSON.toJSONString(arr_String,true);
System.out.println(json_arr_String);
JSONArray jsonArray = JSON.parseArray(json_arr_String);
for (Object o : jsonArray) {
System.out.println(o);
}
System.out.println(jsonArray);
Bar[] arr_Bar = {new Bar(),new Bar(),new Bar()};
String json_arr_Bar = JSON.toJSONString(arr_Bar,true);
System.out.println(json_arr_Bar);
JSONArray jsonArray = JSON.parseArray(json_arr_Bar);
for (Object o : jsonArray) {
System.out.println(o);
}
System.out.println(jsonArray)
Map map = new HashMap();
map.put("a","aaa");
map.put("b","bbb");
map.put("c","ccc");
String json=JSON.toJSONString(map);
System.out.println(json);
Map map1 = JSON.parseObject(json);
for (Object o : map.entrySet()) {
Map.Entry<String,String> entry = (Map.Entry<String,String>)o;
System.out.println(entry.getKey()+"--->"+entry.getValue());
}
JSONArray-->JSONObject
JSONArray bodys = (JSONArray) value.get("itemInfo");
for(int i=0;i<bodys.size();i++){
JSONObject job = bodys.getJSONObject(i);
for (Object o : job.entrySet()) {
Map.Entry<String,String> entry = (Map.Entry<String,String>)o;
carrybus.setAttributeValue(entry.getKey(),entry.getValue());
}
}