1. 取值的不同
当所取得key不存在时:
org json 会抛异常
fast json 会返回null
示例:
com.alibaba.fastjson.JSONObject fastJson = new com.alibaba.fastjson.JSONObject();
String name = fastJson.getString("name");
// fastJson 正常输出 name:null
System.out.println("name:" + name);
 
org.json.JSONObject orgJson = new org.json.JSONObject();
//抛出异常:org.json.JSONException: JSONObject["name"] not found.
name = orgJson.getString("name");
System.out.println("name:" + name);
 
2. fast json 中 put org json
该操作异常,会放入空json
示例:
org.json.JSONObject orgJsonAddress = new org.json.JSONObject();
orgJsonAddress.put("country", "China");
orgJsonAddress.put("province", "Henan");
orgJsonAddress.put("city", "Zhengzhou");
 
com.alibaba.fastjson.JSONObject fastJson = new com.alibaba.fastjson.JSONObject();
fastJson.put("name", "Qingjiang Li");
fastJson.put("sex", 1);
fastJson.put("address", orgJsonAddress);
System.out.println(fastJson.toJSONString());
 
异常输出:
{
"address": {},
"sex": 1,
"name": "Qingjiang Li"
}
 
 
3. org json 中 put fast json
该操作正常
示例:
com.alibaba.fastjson.JSONObject fastJsonAddress = new com.alibaba.fastjson.JSONObject();
fastJsonAddress.put("country", "China");
fastJsonAddress.put("province", "Henan");
fastJsonAddress.put("city", "Zhengzhou");
 
org.json.JSONObject orgJson = new org.json.JSONObject();
orgJson.put("name", "Qingjiang Li");
orgJson.put("sex", 1);
orgJson.put("address", fastJsonAddress);
System.out.println(orgJson.toString());
 
输出正常:
{
"address": {
"country": "China",
"province": "Henan",
"city": "Zhengzhou"
},
"sex": 1,
"name": "Qingjiang Li"
}
 
 
结论:
  在项目中,尽可能使用同一个种 JSON,如果不得已需要都使用,那么使用时请注意,避免因习惯,引起错误。
 
 
 
 

org json 和 fast json 掺杂使用引起的错误的更多相关文章

  1. Android学习笔记之Fast Json的使用

    PS:最近这两天发现了Fast Json 感觉实在是强大.. 学习内容: 1.什么是Fast Json 2.如何使用Fast Json 3.Fast Json的相关原理 4.Fast Json的优势, ...

  2. SpringBoot 返回json 字符串(jackson 及 fast json)

      一.jackson 1.Controller 类加注解@RestController 这个注解相当于@Controller 这个注解加 @ResponseBody 2.springBoot 默认使 ...

  3. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  4. json数据格式及json校验格式化工具简单实现

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, ...

  5. Json对象与Json字符串互转(4种转换方式)

    Json字符与Json对象的相互转换方式有很多,接下来将为大家一一介绍下,感兴趣的朋友可以参考下哈,希望可以帮助到你 1>jQuery插件支持的转换方式: 复制代码代码如下: $.parseJS ...

  6. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

  7. jQuery中json对象与json字符串互换

    json字符串转json对象:jQuery.parseJSON(jsonStr); json对象转json字符串:JSON.stringify(jsonObj); 根据“|”把字符串变成数组.spli ...

  8. [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类

    [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...

  9. JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

    JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString 如下示例: 直接写的a1就是一个Json对象,a2 就是一个Json对象字符串; 通 ...

随机推荐

  1. P0-Logisim简单部件与有限状态机

    #自学了6week,pre都挂了,做了做P0课下测试,觉得自己对有限状态机概念的的理解,特别是牵扯到时序还是很模糊:状态的抽象也不够熟练:logisim和Verilog的实现也存在问题.网上针对性的l ...

  2. WordPress 添加title中的logo

    WordPress 添加title中的logo <!--网页标题左侧显示--> <link rel="icon" href="/favicon.png& ...

  3. python接口自动化--Excel

    1.操作步骤: (1)安装python官方Excel库-->xlrd (2)获取Excel文件位置并读取 (3)读取sheet (4)读取指定rows和cols内容 2.示例代码 # -*- c ...

  4. docker中部署项目时遇到的问题

    容器和宿主机时间不同步问题? 将本地时间复制到docker容器内的etc文件夹下即可 docker cp /etc/localtime scrapy_8:/etc/ 启动crontab错误? 报错: ...

  5. 玩转网络(一)用TTL(Time To Live)排查网络问题

    先大概介绍一下TTL(Time To Live)吧! TTL翻译过来就是网络生存时间,说的是一个网络数据包,它在网络设备中转发的跳数(网络设备这里一般指的是路由器),默认值为64,也有很多设置为了12 ...

  6. 从零开始入门 | Kubernetes 中的服务发现与负载均衡

    作者 | 阿里巴巴技术专家  溪恒 一.需求来源 为什么需要服务发现 在 K8s 集群里面会通过 pod 去部署应用,与传统的应用部署不同,传统应用部署在给定的机器上面去部署,我们知道怎么去调用别的机 ...

  7. ReactRouter中HashRouter和BrowserRouter的区别

    仅个人理解,如有不当请指正 一.从原理上 HashRouter在路径中包含了#,相当于HTML的锚点定位.(# 符号的英文叫hash,所以叫HashRouter,和散列没关系哦)) 而BrowserR ...

  8. 使用IDEA2017.3.5搭建SSM框架

    转载自博客园,附上原文地址https://www.cnblogs.com/hackyo/p/6646051.html?utm_source=itdadao&utm_medium=referra ...

  9. 普通用户修改时间 sudo

    sudo date neokylinV7.0  desktop 1.给/etc/sudoers加权限 # chmod u+w /etc/sudoers 2.添加配置 # vim /etc/sudoer ...

  10. Unity3D 卡通描边之控制线条粗细

    一.前言 之前我发表过一篇Unity3D 卡通渲染 基于退化四边形的实时描边,最重要的实时描边已经实现了,本文接下来要完善一下它. 在之前的实时描边中,使用了几何着色器中的LineStream来进行绘 ...