JSON是什麽

JSON是一種有著固定格式的字符串。以下是它的官方定義:

JSON(全称 JavaScript Object Notation)是一种轻量级的数据交换格式。由于轻量、易阅读的特性,成为了XML数据格式的替代品。

JSON是JavaScript的一個子集,但 JSON 是一种数据格式,和语言无关。除了JavaScript以外,很多其他的编程语言都支持 JSON 格式数据的生成和解析。

JSON是用來幹嘛的

JSON 一般用于数据传输和存储,因为它易于程序之间的读写操作。

JSON的優勢

  1. 語法簡單,易于上手。
  2. 輕量,使程序執行效率更高。
  3. 兼容性廣泛,幾乎所有的編程語言都支持它。

JSON的缺陷

  1. 只能传递基本的数据类型(int, long, string等),不能传递二进制文件,比如byte类型,比如图片、Excel。
  2. 沒有命名空間的概念,不同上下文中的相同的信息段會彼此混合。

JSON的寫法

用JSON表示一個對象時,以 "{" 開始,以 "}" 結束。中間包裹的爲Key : Value的數據結構,如果存在多個Key : Value則應該用逗號隔開。如下:

{
 name: "Tom",
 age: 18
}

用JSON表示一個數組時,以 "[" 開始,以 "]" 結束,數組的每一名成員可以是以下幾種數據類型:String、Number、Object、Array、Boolean、Null。成員之間以逗號隔開。

[
 'text',
 18,
 {foo: "bar"},
]

JSON語法規範

JSON的語法規則很簡單,根據數據類型的不同,規則也不同:

  • 數組

    數組表示一系列有序的值,用方括号(“[]”)包围起来,并列的值之间用逗号分隔。最后一个成员后面不允许使用逗号”,“。

  • 對象

    對象表示一系列无序的值,用大括号(“{}”)括起来,大括号里是一系列的“名称/值”对。其中名称是字符串,因此必须使用双引号""包裹。最后一个”名称/值“后面不允许使用逗号”,“。

  • 數值

    用數字表示,JSON只支持十進制整數和浮點數。

  • 字符串

    字符串必須用雙引號包裹起來。在JSON中無論是名稱還是字符串值,都必須使用雙引號""包裹。

下面是一個JSON示例,包含了上面所有的數據類型:

{
    "name": "Lucy",
    "age": 19,
    "pets": [
        {
            "name": "coco",
            "type":"cat",
            "color": "white"
        },
        {
            "name": "merlin",
            "type": "dog",
            "color": "yellow"
        }
    ]
}

JSON的寫法虽然简单清晰,但规范严格,在实际应用很容易造成错误,在开始使用前,建议你想了解一下常見的JSON語法錯誤示例

用JavaScript表示JSON字符串

使用JavaScript表示JSON字符串時需要注意,字符串是用""包裹起來的,因此,JSON內部的"需要用斜杠\進行轉義。

// 用JSON表示数字
var json_number = "1";
// 用JSON表示字符串
var json_string = ""learn to use JSON"";
// 用JSON表示一个布尔值
var json_bool = "true";
// 用JSON表示无序列表
var json_object = "{"name":"lucy","age":"18"}";
// 用JSON表示有序列表
var json_array = "["dog", "cat"]";
// 用JSON表示NULL
var json_null = "null";

從上面的例子可以看出,JSON本質上是一個遵循一定寫法規範的字符串,通過JavaScript的JSON.parse()你可以將他們轉換爲JavsScript數據類型。

JSON標准:

RFC4627:

The application/json Media Type for JavaScript Object Notation (JSON)

發布日期:

2006年7月

最後修訂:

2010年7月

作者信息:

Douglas Crockford

JSON.org

EMail: douglas@crockford.com

RFC4627 TXT版下载RFC4627 PDF版下载
你可能想了解:JSON語法| JSON常見錯誤寫法