java知识系列之json总结

引入:fastjson-1.1.36.jar

1.json字符串与java对象之间的转换:

字符串转对象:JSON.parseObject(String text,Class<T> clazz);

对象转字符串:JSON.toJSONString(Object object);

字符串转list:List<A> list = JSON.parseObject(String text,new TypeReference(ArrayList<A>));


引入:json-lib-2.2.3-jdk15.jar

2.JSONObject与字符串和java对象之间的转换:

String jsonString ="{'name':'jack','sex':'men'}";   

JSONObject jsonObject = JSONObject.fromObject(jsonString); 

Object results = JSONObject.toBean(jsonObject, Person.class); 

预先定义好java bean:

  1. JAVA BEAN:  
  2. public class Person{  
  3. private String name;  
  4. private String sex;  
  5. ......
  6. }
 

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\"]";
Collection
<String> strlist = JSONArray.toCollection(JSONArray.fromObject(listStr));
for (String str : strlist) {
    System.out.println(str);
}

String mapStr = "{\"age\":30,\"name\":\"Michael\",\"baby\":[\"Lucy\",\"Lily\"]}";
Map
<String, Object> map = (Map) JSONObject.toBean(JSONObject
                .fromObject(mapStr), Map.
class);
for (Entry<String, Object> entry : map.entrySet()) {
    System.out.println(entry.getKey() 
+ " " + entry.getValue());
}

特殊例子:

如何把json的yyyy-MM-dd的转换为Bean中的util.Date类型:
view plaincopy to clipboardprint
?
JSONUtils.getMorpherRegistry().registerMorpher(
          
new DateMorpher(new String[] { "yyyy-MM-dd" }));

String jsonStr 
= "[{\"name\": \"husband\", \"age\": \"26\", \"born\": \"1984-01-12\"},{\"name\": \"wife\", \"age\": \"20\", \"born\": \"1990-05-01\"}]";

Collection
<JsonBean> list = 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"));
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值