转自:https://blog.csdn.net/am540/article/details/79585294
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();
注意:如果把一个对象转换成json,即使对象内没有声明field,但是只要里面有getXX的方法都会转变成json内属性,
解决办法是改方法名
相关推荐
JSON net.sf.json 依赖的jar包 亲测可用 一次导入所有jar包
net.sf.json.JSONArray等JSON类所需要的jar包组合。包括JSONObject等
改json jar包,有6个资源包,在实际项目中亲测,大家可以放心使用!
net.sf.json.JSONObject相关依赖架包,导入项目后,JSONObject.fromObject()方法就可以使用了
解决net.sf.json.JSONObject 解决net.sf.json.JSONObject
net.sf.json.JSONObject相关jar包
net.sf.json.JSONObject所需要的jar包 commons-beanutils-1.9.3.jar commons-collections-3.2.2 commons-lang-2.6 commons-logging-1.2 ezmorph-1.0.6 json-lib-2.4-jdk15
Java中使用Json的net.sf.json包,其中包含JSONObject与JSONArray等操作类,十分好用。
1.解析json字符串 2.将json字符串转换为java对象 3.将java对象转换为json字符串
NULL 博文链接:https://bijian1013.iteye.com/blog/2310861
net.sf.json.JSONObject需要的jar包 -- net.sf.json.JSONObject需要的jar包
JSONObject JSONArray JavaBean和json数据的转换等,都可以使用。
net.sf.json需要的jar
java开发中需要jsonObject,jsonArray需要用到6个jar包,net.sf.json.JSONObject commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging.jar ezmorph-1.0.3.jar json-lib-...
开源最新的json 库文件。json-lib-2.4-jdk15, fastjson-1.2.2
net.sf.json依赖jar包,其中包括: commons-beanutils-1.7.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging.jar ezmorph-1.0.3.jar json-lib-2.4-jdk15.jar
Java的net.sf.json.JSONObject , 发现Maven仓库找不到, 特意上传供大家分享
在用到net.sf.json的时候有时候会因为缺少依赖库而报错,此时可以试试这个包
JSONObject和JSONAarry的需要的jar,包括json-lib-2.4-jdk15,以及依赖commons-beanutils-1.9.3; commons-collections-3.2.2 ;commons-lang-2.6 ; ezmorph-1.0.6.jar
阿里fastjson和谷歌net.sf.json(三种)