引入:fastjson-1.1.36.jar
1.json字符串与java对象之间的转换:
字符串转对象:JSON.parseObject(String text,Class clazz);
对象转字符串:JSON.toJSONString(Object object);
字符串转list:List list = JSON.parseObject(String text,new TypeReference(ArrayList));
引入:json-lib-2.2.3-jdk15.jar
2.JSONObject与字符串和java对象之间的转换:
String jsonString ="{'name':'jack','sex':'men'}";
JSONObjectjsonObject = JSONObject.fromObject(jsonString);
Object results = JSONObject.toBean(jsonObject, Person.class);
预先定义好java bean:
JAVA BEAN:
publicclassPerson{
privateString name;
privateString sex;
......
}
3.JSONObject可以直接转化为Map对象。
String jsonString ="{'name':'jack','sex':'men'}";
JSONObject jsonObject = JSONObject.fromObject(jsonString);
Map mp = jsonObject;
System.out.println(mp.get("name"));
4.JSON与list、map转换:
String listStr="[\"apple\",\"orange\"]";
Collectionstrlist=JSONArray.toCollection(JSONArray.fromObject(listStr));for(String str : strlist) {
System.out.println(str);
}
String mapStr="{\"age\":30,\"name\":\"Michael\",\"baby\":[\"Lucy\",\"Lily\"]}";
Mapmap=(Map) JSONObject.toBean(JSONObject
.fromObject(mapStr), Map.class);for(Entryentry : map.entrySet()) {
System.out.println(entry.getKey()+""+entry.getValue());
}
特殊例子:
如何把json的yyyy-MM-dd的转换为Bean中的util.Date类型:
view plaincopy to clipboardprint?JSONUtils.getMorpherRegistry().registerMorpher(newDateMorpher(newString[] {"yyyy-MM-dd"}));
String jsonStr="[{\"name\": \"husband\", \"age\": \"26\", \"born\": \"1984-01-12\"},{\"name\": \"wife\", \"age\": \"20\", \"born\": \"1990-05-01\"}]";
Collectionlist=JSONArray.toCollection(JSONArray.fromObject(jsonStr), JsonBean.class);//DateUtil.getFormatDate(date,fmtstr)日期转字符串这里不再写代码了for(JsonBean o : list) {
System.out.println(DateUtil.getFormatDate(o.getBorn(),"yyyy-MM-dd")); }