`

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

    博客分类:
  • Java
阅读更多

转自: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包

    4. **XML与JSON的互转**:`net.sf.json`库还包括了XML和JSON之间的转换功能,这在需要在两种格式间切换的场景下非常实用。 5. **性能优化**:库的设计考虑了性能问题,采用了一些优化策略,如缓存机制,以提高大...

    json net.sf.json

    3. **XML与JSON互转**:`net.sf.json`提供了XML与JSON之间的转换功能,这对于需要在XML和JSON之间切换的应用非常有用。例如,`XML.toJSONObject()`和`JSONObject.toXML()`可以实现这一转换。 4. **JSONPath支持**:...

    JSON(net.sf.json.JSONArray)需要的jar包

    在标题中提到的"JSON(net.sf.json.JSONArray)需要的jar包",是指为了在Java项目中使用`net.sf.json.JSONArray`以及相关的JSON类,你需要引入特定的jar包。`net.sf.json.JSONArray`是开源项目Apache licensed Json-...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    这篇博客文章"net.sf.json.JSONObject实现Object对象与Json字符串的互转"深入探讨了如何使用`JSONObject`来处理这种转换。 首先,我们需要了解`JSONObject`的基本用法。`JSONObject`可以从一个Java对象创建,也可以...

    net.sf.json.JSONObject依赖jar

    在实际开发中,除了`fromObject()`,net.sf.json.JSONObject还提供了许多其他方法,如`get()`, `put()`, `toString()`, `toJSONArray()`等,帮助开发者进行JSON数据的操作和解析。这些功能使得...

    net.sf.json.JSONObject Jar包下载

    如果你需要在XML和JSON间来回切换,`JSONObject.fromXML()`和`JSONObject.toXML()`方法将非常有用。这使得在不同的数据交换格式之间进行数据转换变得更加方便。 在实际开发中,这个Jar包适用于Web服务、数据交换、...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    在Java开发中,数据交换和存储常常涉及到JSON...以上就是使用`net.sf.json.JSONObject`进行JSON操作的基本步骤和进阶技巧。在实际开发中,你可能还需要结合其他工具,如Gson或Jackson,根据项目需求选择合适的JSON库。

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    在Java开发中,处理JSON数据时通常会用到一些库,如`com.alibaba.fastjson.JSON` 和 `net.sf.json.JSONObject`。这两个库分别是阿里巴巴的Fastjson和Eclipse的Json-lib。 首先,我们来详细了解一下`...

    Java中使用Json的net.sf.json包

    为了在Java中处理JSON数据,开发者通常会使用特定的库,如`net.sf.json`包,这是一个非常实用的JSON库,提供了丰富的功能来创建、解析和操作JSON对象。 `net.sf.json`库主要包含了两个核心类:`JSONObject`和`...

    net.sf.json.JSONObject相关jar包.zip

    标题 "net.sf.json.JSONObject相关jar包.zip" 指的是一个...在实际开发中,正确使用net.sf.json.JSONObject可以帮助简化JSON数据处理,提高代码的可读性和效率。同时,了解其API和常见操作是有效利用这一工具的关键。

    net.sf.json依赖包

    `net.sf.json` 是一个广泛使用的开源JSON库,主要用于Java应用程序中处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式,它使得人和机器都能容易地读写数据,通常用于Web服务和客户端...

    net.sf.json.JsonObject需要的jar包

    根据标题和描述,这个压缩包文件可能包含了运行和使用`net.sf.json.JSONObject`所需的依赖。通常,这些jar包可能包括json-lib的主库和其他可能的依赖,比如`net.sf.ezmorph.jar`(因为json-lib在处理某些转换时会...

    net.sf.json.JSONObject 依赖的包

    这个库在很多项目中被用作与JSON数据交互的工具,尤其在那些不使用现代Java版本(如Java 8及以上)或者不依赖更大型的JSON库(如Jackson、Gson或JSON-P)的项目中。`net.sf.json`库是SourceForge的一个项目,它提供...

    net.sf.json.JSONObject依赖库.zip

    值得注意的是,虽然`net.sf.json`库提供了一种处理JSON的方式,但在现代的Java开发中,更推荐使用官方的`org.json`库(由Oracle维护)或Jackson、Gson等更强大、更新且社区支持更丰富的JSON库。这些库提供了更高效、...

    net.sf.json需要的jar

    标题中的"net.sf.json需要的jar"指的是在Java开发中使用net.sf.json库时所需的依赖JAR文件。net.sf.json是开源项目,它提供了一系列的API来处理JSON(JavaScript Object Notation)数据格式,便于Java应用程序与JSON...

    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

    net.sf.json2.4

    `net.sf.json`是该库的特定实现,可能包含了各种JSON操作的方法,如`JSONObject`、`JSONArray`、`JSONFunction`等类,以及一系列的转换和解析函数。 压缩包中的子文件列表揭示了`net.sf.json2.4`依赖的一些其他开源...

    net.sf.json.JSONObject所需的jar包

    在Java开发中,有时我们需要将Java对象转换为JavaScript Object Notation (JSON)对象,以便于在客户端和服务器之间进行数据交换。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,...

    net.sf.json jar包 net.sf.json jar包 最全版

    JAVA中使用JSON进行数据传递,用于java生成json字符串,和java解析json字符串(如果要使程序可以运行的话必须引入JSON-lib包,而JSON-lib包是一个beans,collections,maps,java arrays和XML和JSON互相转换的包)

    net.sf.json.JSONObject需要用到的6个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-...

Global site tag (gtag.js) - Google Analytics