Java解析JSON数据

1、什么是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.html

这是JSON官网的一段描述,大概意思是说JSON是一种彻底与语言无关的,容易解析和生成,用做轻量级数据交换的文本格式,能够在多种不一样语言间交换数据。java

好比某学校“三年级一班”有4个学生张3、李4、王5、马六,咱们能够很容易的生成以下的代码表示这些内容:python

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

在java,c++,c#,python等几乎全部的高级语言中你均可以本身编程解析它,或者用别人写好的方法或函数解析它们。c++

2、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

JSON有两种结构:c#

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

    输入图片说明

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

    例如:编程语言

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

    输入图片说明

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

    例如:

    [1,2,3,4]

在这里屡次提到的值,它能够是多种类型:

输入图片说明

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

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

3、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'}

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

JSON官网列出的工具以下:

输入图片说明

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

  1. jdk库自带的JSONObject

  2. Google的gson

  3. 阿里的FastJson

  4. Jackson

  5. Oracle的jsonp

  6. net.sf.json

参考

http://blog.csdn.net/lmdsoft/article/details/51193007

http://blog.csdn.net/zhanggang740/article/details/52278373

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

http://blog.csdn.net/leaderway/article/details/52374325

相关文章
相关标签/搜索