Java解析JSON数据

一、什么是JSON?

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

这是JSON官网的一段描述,大概意思是说JSON是一种完全与语言无关的,容易解析和生成,用作轻量级数据交换的文本格式,可以在多种不同语言间交换数据。

比如某学校“三年级一班”有4个学生张三、李四、王五、马六,我们可以很容易的生成如下的代码表示这些内容:

{
    "class": "三年级一班",
    "students": [
        "zhangsan",
        "lisi",
        "wangwu",
        "maliu"
    ]
}

在java,c++,c#,python等几乎所有的高级语言中你都可以自己编程解析它,或者用别人写好的方法或函数解析它们。

二、JSON的结构

JSON is built on two structures:

A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.

JSON有两种结构:

  • 名称/值对的集合,在大多数语言中被实现为对象,字典,散列表,键控列表或关联数组。

    输入图片说明

    一个对象是一组无序的名称/值对。一个对象以 { 开始,以 } 结束。每个名称后面跟着 : 把名称/值分开,每对之间用 , 隔开。

    例如:

    {"name":"liufei","age":23,"address":"BeiJing"}
    
  • 有序的值列表,在大多数语言中,这被实现为数组,向量,列表或序列。

    输入图片说明

    一个数组是值的有序集合。阵列以 [ 开始,以 ] 结尾。值由 , 分开。

    例如:

    [1,2,3,4]
    

在这里多次提到的值,它可以是多种类型:

输入图片说明

可以是一个字符串(在双引号中),或一个数字,或true,false,或null。或对象或一个数组,这些结构可以嵌套。

这些是通用数据结构。几乎所有现代编程语言都以一种或另一种形式支持它们。

三、JSON与JS

关系

很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

解析与生成

要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'

要实现从 JSON 转换为对象,使用 JSON.parse() 方法:

var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

四、常见的Java解析JSON工具包

JSON官网列出的工具如下:

输入图片说明

以下是几个比较常见的JSON工具包介绍:

  1. jdk库自带的JSONObject

  2. Google的gson

  3. 阿里的FastJson

  4. Jackson

  5. Oracle的jsonp

  6. net.sf.json

参考

http://blog.youkuaiyun.com/lmdsoft/article/details/51193007

http://blog.youkuaiyun.com/zhanggang740/article/details/52278373

http://www.cnblogs.com/zhanglu-cape/p/3960029.html

http://blog.youkuaiyun.com/leaderway/article/details/52374325

转载于:https://my.oschina.net/u/2930289/blog/1549909

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值