(转)[json]net.sf.json 和org.json 的差别及用法

网友投稿 860 2022-10-07

(转)[Json]net.sf.json 和org.json 的差别及用法

(转)[Json]net.sf.json 和org.json 的差别及用法

net.sf.json.JSONObject 和org.json.JSONObject  的差别。一、创建json对象

String str = "{\"code\":\"0000\", \"msg\":{\"availableBalance\":31503079.02}}org.json.JSONObject:JSONObject json = new JSONObject(str);net.sf.json.JSONObject:JSONObject json = JSONObject.fromObject(str);net.sf.json.jsonobject 没有 new JSONObject(String)的构造方法

二、解析json第一种直接用json对象.getXXX();方法获取

net.sf.json.JSONObject: 没有严格要求获取字段的类型跟getXXX()的类型一样org.json.JSONObject:获取的字段类型必须跟getXXX()的类型一样e.g.JSONObject msgObj = json.getJSONObject("msg");String availableBalance = msgObj.getString("availableBalance");如果在org.json.JSONObject 就会报错,可以msgObj.getDouble("availableBalance"),也不会丢精度;而net.sf.json.JSONObject正确,但是精度会丢失.如果String str = "{\"code\":\"0000\", \"msg\":{\"availableBalance\":\"31503079.02\"}}";就不会丢失精度。

第二中json对象直接转变实体对象

public class BalanceDto { private String availableBalance; public String getAvailableBalance() { return availableBalance; } public void setAvailableBalance(String availableBalance) { this.availableBalance = availableBalance; } public String toString(){ return "availableBalance "+availableBalance; }}org.json.JSONObject:BalanceDto alanceDto = (BalanceDto) JSONObject.stringToValue(msgObj);

这个句话编译通过,但是运行会报错,原因是BalanceDto 类中availableBalance 的类型跟json中的“availableBalance ”类型不同意

net.sf.json.JSONObject:String msg = json.getString("msg");BalanceDto alanceDto = (BalanceDto) JSONObject.toBean(msg, new BalanceDto().getClass());

三、从json中获取数组

JSONArray subArray = json.getJSONArray("msg");net.sf.json.JSONObject:int leng = subArray.size();org.json.JSONObject:int leng = subArray.length();

解决办法是改方法名

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详细解析微信小程序入门教程+案例(微信小程序开发图解案例教程 pdf)
下一篇:微信小程序:如何实现tabs选项卡效果示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~