Json 学习总结

json 学习总结下:

其实json就是一种数据格式,参照了javascript(以下简称js)的语法,

一个js对象:{“name1”:value,”name2”:value}

一个js数组:[{“name1”:value,”name2”:value},{“name1”:value,”name2”:value}]

JSON的数据格式刚好和js的对象、数组一样

JSON主要是要学会它的API(尤其在java)

在js里的两个API

1.符合json格式的字符串→js对象或数组 JSON.parse(str)

2.js对象或数组→json格式字符串 JSON.stringify(obj);

 

说说JAVA里的JSON应用

1.首先要导包 ps:

记一次未解决的异常:java.lang.NoClassDefFoundError:net/sf/json/JSONObject

通过自己试验这个包最好放在web-rootweb-inflib下:否则会发生上诉错误,

参考地址:http://www.cnblogs.com/gossip/p/5369670.html

猜测,如果不放在tomcat里估计会得不到包,反正后来放了就好了

如图:

 

2.需要了解json在java里的几个重要的API

①Java对象→JSON字符串 JSONObject.fromObject(obj).toString();

②Java数组/集合→JSON字符串JSONArray.fromObject(objs).toString();

③JSON字符串→Java对象 分两步:

JSONObject  jsonObject = JSONObject.fromObject(jsonStr);

       Friend  f = (Friend)JSONObject.toBean(jsonObject, Friend.class);

④JSON字符串→Java数组或集合分两步:

数组:String jsonStr = "[{\"name\":\"Lucy\",\"age\":18},{\"name\":\"Dalin\",\"age\":20},{\"name\":\"Tom\",\"age\":29}]";

JSONArray  jsonArr = JSONArray.fromObject(jsonStr);

Friend[] fs = (Friend[])JSONArray.toArray(jsonArr,Friend.class);

集合:String jsonStr = "[{\"name\":\"Lucy\",\"age\":18},{\"name\":\"Dalin\",\"age\":20},{\"name\":\"Tom\",\"age\":29}]";

JSONArray   jsonArr = JSONArray.fromObject(jsonStr);

List<Friend> fs = (List<Friend>)JSONArray.toCollection(jsonArr, Friend.class);

 

关键点在于json字符串一定要符合json格式。

另外这是在知道java类的前提下,可以多一个参数“类名.class,如果是个Object,不知道具体类的时候,可以省略这个参数,那就转成一个集合

 

写到这里不得不说一下Hibernate获取数据时遇到的一些问题。

看截图吧!


通过试验,那两句话果然是多余的,因为result就是一个list

为了给客户端得到一个json字符串,这里想尽办法将hibernate获得的数据,进行封装,这样客户端处理起来就简单了。

以后应该有很好的框架吧,这里我就是这么写的,因为这里hibernate查询,我用了排序,所以获得的并非一个Product对象,我想应该是有hql语句可以办到的,但是我还没学到hibernate,等学到了再说吧

PS20160922,补充内容关于日期转换成json,参考地址:http://blog.csdn.net/btt2013/article/details/50155949

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值