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

相關文章
相關標籤/搜索