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

转载于:https://www.cnblogs.com/lgzbj2006/p/5354091.html

net.sf.json.JSONObject 和org.json.JSONObject 的差别相关推荐

  1. java中关于引用net.sf.json.JSONObject 和org.json.JSONObject 的差别

    一.首先今天在写一个功能时遇到和这个问题,就是在调用的百度识别接口需要这个json包,而我平常解        析json习惯了用这个包,那么问题问题来了: 1. 用这个的时候,引入的包是org.js ...

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

    在获取json字符串后Java使用api创建json对象报错,查阅资料解决该问题: 问题原因:net.sf.json.jsonobject 没有 new JSONObject(String)的构造方法 ...

  3. 【JSON解析】浅谈JSONObject的使用

    简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON.JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成.易于 ...

  4. JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

    一.首先来说说fastjson fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发.其主要特点是: ① 快速:fastjson采用独创的算法, ...

  5. java遍历json数据_Java 如何遍历JsonObject对象

    方法: iterator iter = jsoninfo.entryset().iterator(); 代码示例: public class test { public static void mai ...

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

    方式一/*** Creates a JSONDynaBean from a JSONObject.*/public static Object toBean( JSONObject jsonObjec ...

  7. Java通过Fastjson实现JSONObject对象、Json字符串以及Java实体类之间互相转换

    导入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</arti ...

  8. JSONObject对象与JSON转换

    com.alibaba.fastjson.JSONObject之对象与JSON转换方法 阿里巴巴 FastJson api 'com.alibaba:fastjson:1.2.57' 1.Java对象 ...

  9. json.net java_java解析JSON (使用net.sf.json)

    例如JSON字符串str如下: { "data": [ { "basic_title": "运筹帷幄因特网", "basic_cr ...

最新文章

  1. LeetCode简单题之二叉搜索树的范围和
  2. goto VS longjmp setjmp
  3. 使用yeoman搭建脚手架并发布到npm
  4. SpringMvc 事务的注解配置、实现、挂起
  5. python 笔记 异常处理
  6. PostgreSQL SQL 语言:数据定义
  7. js的异步请求出现同步效果
  8. python 声明变量_Python的变量声明
  9. Phonegap + JqueryMobile常见问题
  10. 如何定制化SAP Fiori标准应用里UI字段的标签
  11. 类似ajax封装函数,JS 封装一个async式的AJAX函数
  12. Java笔记-RabbitMQ的消息确认机制(事务)
  13. TX Text Control文字处理教程(11)使用文本框
  14. zz 聊聊并发(二)
  15. 批量执行定时任务_执行批量维护任务安全策略
  16. 第二章 如何在VS2008里面编译CG
  17. System x 服务器制作ServerGuide U盘安装Windows Server 2003 操作系统
  18. JavaFX之Scene Builder详细使用说明之设置篇(2)——属性Properties
  19. 普洛斯与宁德时代签署战略合作协议;高博昌平国际研究型医院成为北京自贸区首批签约项目 | 美通企业日报...
  20. 深度精简版xp 安装并使用iis

热门文章

  1. 简单 描述oracle 存储结构,下面的各选项中哪一个正确描述了
  2. golang image.image 转文件流_Kuiper 1.0.2 正式发布 超轻量 IoT 边缘流处理
  3. byfen网java_Java企业级分布式架构师第10期2020年-开课吧全套
  4. 利用WiFi模块实现MicroPython远程开发
  5. ESP8266 D1-UNO-R3开发板的初步测试
  6. RT-Thread逐飞-智能车培训之MM32芯片应用
  7. 条形压电陶瓷执行器件和高压驱动器
  8. hive窗口函数分组排序并取第一个值_Hive(七)Hive分析窗口函数
  9. python坐标点怎么输入_python导入坐标点的具体操作
  10. python模块调用的用法_如何使用Python语言中的random模块调用方法