jason概述
轉載自?愛編程的大丙
JSON(JavaScrip Object Notation) 是一種輕量級的數據交換格式。它基于 ECMAScript (歐洲計算機協會制定的 js 規范) 的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
Json 是一種數據格式,和語言無關,在什么語言中都可以使用 Json?;谶@種通用的數據格式,一般處理兩方面的任務:
組織數據(數據序列化),用于數據的網絡傳輸
組織數據(數據序列化),寫磁盤文件實現數據的持久化存儲(一般以.json 作為文件后綴);
Json 中主要有兩種數據格式:Json 數組和 Json 對象,并且這兩種格式可以交叉嵌套使用,下面依次介紹下這兩種數據格式:?
1. Json 數組
Json 數組使用 [] 表示,[] 里邊是元素,元素和元素之間使用逗號間隔,最后一個元素后邊沒有逗號,一個 Json 數組中支持同時存在多種不同類型的成員,包括:整形、 浮點、 字符串、 布爾類型、 json數組、 json對象、 空值-null。由此可見 Json 數組比起 C/C++ 數組要靈活很多。
Json 數組中的元素數據類型一致
// 整形 [1,2,3,4,5] // 字符串 ["luffy", "sanji", "zoro", "nami", "robin"]
Json 數組中的元素數據類型不一致
Json 數組中的數組嵌套使用
Json 數組和對象嵌套使用
2. Json 對象
Json 對象使用 {} 來描述,每個 Json 對象中可以存儲若干個元素,每一個元素對應一個鍵值對(key:value 結構),元素和元素之間使用逗號間隔,最后一個元素后邊沒有逗號。對于每個元素中的鍵值對有以下細節需要注意:
鍵值(key)必須是字符串,位于同一層級的鍵值不要重復(因為是通過鍵值取出對應的 value 值)
value 值的類型是可選的,可根據實際需求指定,可用類型包括:整形、 浮點、 字符串、 布爾類型、 json數組、 json對象、 空值-null。
使用 Json 對象描述一個人的信息:
3. 注意事項
通過上面的介紹可用看到,Json 的結構雖然簡單,但是進行嵌套之后就可以描述很復雜的事情,在項目開發過程中往往需要我們根據實際需求自己定義 Json 格式用來存儲項目數據。
另外,如果需要將 Json 數據持久化到磁盤文件中,需要注意一個問題:在一個 Json 文件中只能有一個 Json 數組或者 Json 對象的根節點,不允許同時存儲多個并列的根節點。下面舉例說明:
錯誤的寫法
// test.json {"name":"luffy","age":19 } {"user":"ace","passwd":"123456" }
錯誤原因:在一個 Json 文件中有兩個并列的 Json 根節點(并列包含 Json 對象和 Json 對象、Json 對象和 Json 數組、Json 數組和 Json 數組),根節點只能有一個。
正確的寫法
// test.json {"Name":"Ace","Sex":"man","Age":20,"Family":{"Father":"Gol·D·Roger","Mother":"Portgas·D·Rouge","Brother":["Sabo", "Monkey D. Luffy"]},"IsAlive":false,"Comment":"yyds" }
在上面的例子中通過Json對象以及Json數組的嵌套描述了一個人的身份信息,并且根節點只有一個就是Json對象,如果還需要使用Json數組或者Json對象描述其他信息,需要將這些信息寫入到其他文件中,不要和這個Json對象并列寫入到同一個文件里邊,切記!!!
總結
- 上一篇: centos下rmp包离线下载
- 下一篇: QJson基础