json結構的格式就是若干個 鍵/值(key, value) 對的集合,該集合可以理解為字典(Dictionary),每個 鍵/值 對可以理解成一個對象(Object)。 鍵/值 對中的 鍵(key) 一般是 一個string,值(value)可以是string、double、int等基本類型,也可以嵌套一個 鍵/值 對,也可以是一個數組,數組里面的數據的類型可以是基本類型,或者 鍵/值 對。可以看出 鍵/值 本來沒什么,只是嵌套得多了就會覺得混亂,下面舉個具體的例子來說明。注:該代碼只是用來舉例說明,並不能正確運行。
1 var testJson = {
2 "Name" : "奧巴馬" ,
3 "ByName" : ["小奧","小巴","小馬"],
4 "Education" : {
5 "GradeSchool" : "華盛頓第一小學",
6 "MiddleSchool" : ["華盛頓第一初中" , "華盛頓第一高中"],
7 "University" : {
8 "Name" : "哈佛大學",
9 "Specialty" : ["軟件工程","會計"]
10 }
11 }
12 }
變量testJson就是一個json對象,testJson對象包括三個 鍵/值 對。
第一個 鍵/值 對: 鍵(key)是"Name“ ,其對應的值(value)是 "奧巴馬" ,即 testJson["Name"] == "奧巴馬"
第二個 鍵/值 對: 鍵 是 "ByName" ,值是一個數組,是一個string集合。有必要的話,數組里面的元素也可以是 鍵/值 對。
第三個 鍵/值 對: 鍵 是 "Education",值是一個 Json對像,該json對象包括三個 鍵/值 對,這就是嵌套了。。。
總結:json對象就是若干個 鍵/值 對的集合,鍵是string,值可以是基本類型,或者嵌套一個Json對象,或者是一個數組(數組里的元素可以是基本類型,也可以是json對象,可以繼續嵌套)。
獲取名字:testJson["Name"]
獲取第一個別名:testJson["ByName"][0] 。testJson的 鍵"ByName" 對應的值 是一個string數組
獲取小學名字: testJson["Education"]["GradeSchool"] , 獲取大學主修專業:testJson["Education"]["University"]["Specialty"][0]
下面舉個實例:
定義一個符合json格式要求的字符串:
string testJson = "{\"Name\" : \"奧巴馬\",\"ByName\" : [\"小奧\",\"小巴\",\"小馬\"],\"Education\":{\"GradeSchool\" : \"華盛頓第一小學\",\"MiddleSchool\" : [\"華盛頓第一初中\" , \"華盛頓第一高中\"], \"University\" :{ \"Name\" : \"哈佛大學\", \"Specialty\" : [\"軟件工程\",\"會計\"]}}}";
然后需要用該字符串作為參數new 一個 JsonObject對象。微軟自帶的類庫 System.Json ,然后添加命名空間 using System.Json;
主要代碼就一句:JsonObject js = JsonObject.Parse(testJson); 用字符串testJson 作為參數new 一個 JsonObject 對象。通過監視我們可以看到js里面的內容和預料的一樣,通過下面這幅圖你應該可琢磨出很多東西來吧
額外插一句:js["Education"]["University"]["Specialty"] 的內容是 {[ "軟件工程", "會計"]},
但js["Education"]["University"]["Specialty"].Contains( "軟件工程") 的值 是false。原因自己琢磨