`
nicegege
  • 浏览: 588494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】net.sf.json.JSONObject 和org.json.JSONObject 的差别

    博客分类:
  • 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();

 

转载出处http://my.oschina.net/wangwu91/blog/340721

分享到:
评论

相关推荐

    net.sf.json.JSONObject依赖jar

    net.sf.json.JSONObject是开源项目Apache Jakarta的一个子项目,提供了一个Java对象到JSON和JSON到Java对象的映射库。这个库允许开发者通过简单的API来操作JSON,从而实现数据的序列化和反序列化。 标题中的...

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

    标题 "net.sf.json.JSONObject相关jar包.zip" 指的是一个包含了与net.sf.json.JSONObject类库相关的Java档案(JAR)文件的压缩包。这个类库是开源项目JSON.org的一部分,用于在Java应用程序中处理JSON(JavaScript ...

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

    在Java开发中,`net.sf.json.JSONObject` 是一个常用的JSON对象模型类,它来自于开源项目json-lib。这个库提供了一种方便的方式来处理JSON(JavaScript Object Notation)数据格式,允许我们在Java应用程序中创建、...

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

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

    net.sf.json.JSONObject Jar包下载

    "net.sf.json.JSONObject"是开源项目json-lib中的一个核心类,它提供了用于处理JSON对象的功能。这个Jar包是为Java开发者提供的一种便捷的方式来在Java对象与JSON数据之间进行转换。 JSONObject是net.sf.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.JSONObject)

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

    net.sf.json.JSONObject 依赖的包

    `net.sf.json.JSONObject` 是一个广泛使用的开源JSON库,它为Java开发者提供了处理JSON对象的能力。这个库在很多项目中被用作与JSON数据交互的工具,尤其在那些不使用现代Java版本(如Java 8及以上)或者不依赖更...

    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.json.JSONObject依赖库.zip

    `net.sf.json`库提供了对JSON(JavaScript Object Notation)数据格式的支持,允许Java对象与JSON格式之间进行互转。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-...

    net.sf.json.JSONObject对象使用指南

    在Java开发领域,多种库支持JSON的解析和生成,其中`net.sf.json.JSONObject`是较为常用的一种实现。 #### JSON概述 JSON是一种基于文本的数据交换格式,主要包括两种结构:一种是“名称/值”对的集合,另一种是值...

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

    此外,`net.sf.json.JSONObject`还提供了丰富的API,如获取、设置值,以及操作嵌套的JSON对象和数组等。例如,可以使用`getString()`, `getInt()`, `put()`等方法与JSON对象进行交互: ```java String name = ...

    JSON net.sf.json jar包

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

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

    `net.sf.json.JSONArray`是开源项目Apache licensed Json-lib的一部分,它提供了对JSON数组的操作支持,如创建、读取、修改和遍历数组。 描述中提到了"JSONObject等",这暗示除了`JSONArray`之外,可能还需要`...

    JSONObject(net.sf.json)jar包和依赖包

    通过JSONObject json = JSONObject.fromObject(student);将构造好的Student对象转换为JSON对象,Student如上文所述。 进入此方法后会继续调用fromObject(Object, JsonConfig)的重载方法,在此重载方法中会通过...

    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包

    在Java开发中,`net.sf.json.JSONObject` 是一个常用的JSON对象模型类库,它属于`json-lib`项目的一部分。这个类库允许开发者在Java中处理JSON数据,进行序列化和反序列化操作。然而,为了能够正确使用`JSONObject`...

    解决net.sf.json.JSONObject

    `net.sf.json.JSONObject`是Java中一个常用的JSON处理库,主要由开源组织json-lib提供。在处理JSON数据时,我们经常遇到与`net.sf.json.JSONObject`相关的各种问题,包括序列化、反序列化、解析JSON字符串以及操作...

Global site tag (gtag.js) - Google Analytics