1. 程式人生 > >JSON語法及JSON定義規範化

JSON語法及JSON定義規範化

一、前言

  JSON(JavaScript Object Notation, JS物件標記) 是一種輕量級的資料交換格式。它是基於 ECMAScript 的一個子集,採用完全獨立於程式語言的文字格式來儲存和表示資料。

二、JSON 語法規則

  在 JS 語言中,一切都是物件。因此,任何支援的型別都可以通過 JSON 來表示,例如字串、數字、物件、陣列等。但是物件和陣列是比較特殊且常用的兩種型別:

  • 物件表示為鍵值對
  • 資料由逗號分隔
  • 花括號儲存物件
  • 方括號儲存陣列

  JSON 是 JS 物件的字串表示法,它使用文字表示一個 JS 物件的資訊,本質是一個字串。JSON 和 JS 物件可以互轉。

  • JS物件 –> JSON 字串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'});    // 結果是 '{"a": "Hello", "b": "World"}'
   
  •  
  • JSON 字串 –> JS物件,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}');   // 結果是 {a: 'Hello', b: 'World'}
  •  

三、和XML的比較

1、例項比較

- 用XML表示中國部分省市資料如下:

<?xml version="1.0" encoding="utf-8"?>
<country>
    <name>中國</name>
    <province>
        <name>黑龍江</name>
        <cities>
            <city>哈爾濱</city>
            <city
>
大慶</city> </cities> </province> <province> <name>廣東</name> <cities> <city>廣州</city> <city>深圳</city> <city>珠海</city> </cities> </province> <province> <name>臺灣</name> <cities> <city>臺北</city> <city>高雄</city> </cities> </province> <province> <name>新疆</name> <cities> <city>烏魯木齊</city> </cities> </province> </country>
  • 用JSON表示如下:
{
    "name": "中國", 
    "province": [
        {
            "name": "黑龍江", 
            "cities": {
                "city": [
                    "哈爾濱", 
                    "大慶"
                ]
            }
        }, 
        {
            "name": "廣東", 
            "cities": {
                "city": [
                    "廣州", 
                    "深圳", 
                    "珠海"
                ]
            }
        }, 
        {
            "name": "臺灣", 
            "cities": {
                "city": [
                    "臺北", 
                    "高雄"
                ]
            }
        }, 
        {
            "name": "新疆", 
            "cities": {
                "city": [
                    "烏魯木齊"
                ]
            }
        }
    ]
}

  可以看到,JSON 簡單的語法格式和清晰的層次結構明顯要比 XML 容易閱讀,並且在資料交換方面,由於 JSON 所使用的字元要比 XML 少得多,可以大大得節約傳輸資料所佔用得頻寬。

四、標準JSON格式定義

  雖然在JSON並沒有特殊的格式要求,但是在實踐過程中,JSON有比較認可的格式規範:

  • JSON格式的定義一般遵循如下規範:
{
    "status":           // 介面訪問成功或者失敗的狀態碼
    "message":          // 介面訪問錯誤的時候返回的錯誤提示文字,訪問成功的時候為空字串
    "data":{            // 服務端實際返回的資料
    }
}
  • 請求介面失敗的例子
{
    "status": "1", 
    "message": "您尚未登入,請登入後繼續操作"
}
  • 請求介面成功的例子
{
    "status": "0", 
    "message": "", 
    "data": {
        "userId": "1", 
        "username": "zhangsan", 
        "worklist": [
            {
                "workId": "1", 
                "workname": "完成登陸介面設計"
            }, 
            {
                "workId": "2", 
                "workname": "完成使用者中心功能編碼"
            }
        ]
    }
}

五、JSON 工具

六、參考資料