net.sf.json.JSONObject 和org.json.JSONObject 的差别

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();

还有其他的差别 可以比较两个api文档,如有错误 还请提出,可以发邮件到[email protected]

时间: 2024-08-07 14:55:14

net.sf.json.JSONObject 和org.json.JSONObject 的差别的相关文章

net.sf.json.JSONObject 和org.json.JSONObject 的差别(转)

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

Java解析JSON时,new JSONObject("这儿写json字符串")报错问题

在获取json字符串后Java使用api创建json对象报错,查阅资料解决该问题: 问题原因:net.sf.json.jsonobject 没有 new JSONObject(String)的构造方法 解决方法:更换jar包或者更换实例构造方法 1 String str="{\"users\":[{\"loginname\":\"zw\",\"email\":\"[email protected]\&quo

jsonObject.toString(2) json格式缩进

public static void main(String[] args) { JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "li"); jsonObject.put("age", "22"); String string2 = jsonObject.toString(20);//json格式缩进20个字符 System.out.print

【JSON异常系列】new JSONObject对象时卡死原因

8:47 2015/7/11 昨天晚上在使用JSON时,在创建JSONObject对象的时候不报错也不抛出异常,但就是new 不出来JSONObject的对象,这是一个很奇葩的现象. 最后才发现原来是少了一些必要的jar包, 在struts2中,使用JSON所必需的Jar包有: 1.commons-beanutils.jar 2.commons-collections.jar 3.commons-langs.jar 4.commons-logging.jar 5.ezmorph.jar 6.js

jsonobject 遍历 org.json.JSONObject

[html] view plain copy import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; [java] view plain copy public static void main(String[] args) { String str = "{'TI':[{'value':'aa1','count':10},{'value':'aa2','count':15},{'

Json系列之二 json to bean(JSONObject类详解)

方式一 /** * Creates a JSONDynaBean from a JSONObject. */ public static Object toBean( JSONObject jsonObject ) 返回的数据类型明显不是我们常用的数据类型 方式二 /** * Creates a bean from a JSONObject, with a specific target class.<br> */ public static Object toBean( JSONObject

JSON以及Java转换JSON的方法

本文主要讲述如下几个内容: 1.JSON定义以及JSON的特性 2.如何在JavaScript中解释JSON格式数据 3.如何在Java代码中使用JSON(讲对象转换成JSON对象以及解释JSON字符串) 一.JSON w3c上对JSON有比较详细的介绍,链接http://www.w3school.com.cn/json/index.asp.下面仅讲述重要的几点. Json是 JavaScript 对象表示法(JavaScript Object Notation),是轻量级的文本数据交换格式,具

双层嵌套json字符串(即json对象内嵌json数组)解析为Map

之前我层写过一篇文章,介绍了json与map的相互转化,但当时只涉及到单一的json对象或json数组,对json对象内嵌套这json数组的json字符串无法处理,这篇文章主要解决这个问题. 之前的那篇文章址:http://blog.csdn.net/u012116457/article/details/24371877 首先要在项目中导入json的jar包: 在下面的代码中处理json对象既使用了net.sf.json.JSONObject 也使用了org.json.JSONObject 两个

简单了解json以及使用google json 2.2

json简介: JSON: JavaScript对象表示法(JavaScript Object Notation) JSON是存储和交换信息的语法. JSON是轻量级的文本交互格式 JSON独立于语言和平台 JSON具有自我描述性能,更易于理解 JSON与XML 类似XML,比XML更小.更快.更易解析 没有结束标签 更短 读写的速度更快 使用数组 不使用保留字 JSON的语法是JavaScript对象表示语法的子集 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON的