資源描述:
《標(biāo)準(zhǔn)json格式定義與解析注意點》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、JSON是一種輕量級的數(shù)據(jù)交換格式。它是基于javascript語法標(biāo)準(zhǔn)的一個子集。JSON是一種輕量級的數(shù)據(jù)交換格式。JSON采用完全獨立于語言的文本格式,可以很容易在各種網(wǎng)絡(luò)、平臺和程序之間傳輸。JSON的語法很簡單,...???JSON是一種輕量級的數(shù)據(jù)交換格式。它是基于javascript語法標(biāo)準(zhǔn)的一個子集。JSON是一種輕量級的數(shù)據(jù)交換格式。JSON采用完全獨立于語言的文本格式,可以很容易在各種網(wǎng)絡(luò)、平臺和程序之間傳輸。JSON的語法很簡單,易于人閱讀和編寫,同時也易于機器解析和生成。?要想熟練的操作json數(shù)據(jù),就要先了解j
2、son數(shù)據(jù):?JSON的規(guī)則很簡單:對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結(jié)束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’對”之間使用“,”(逗號)分隔。?規(guī)則如下:1、映射用冒號(“:)表示。名稱:值?2、并列的數(shù)據(jù)之間用逗號(“,”)分隔。名稱1:值1,名稱2:值2?3、映射的集合(對象)用大括號(“{}”)表示。{名稱1:值1,名稱2:值2}?4、并列數(shù)據(jù)的集合(數(shù)組)用方括號(“[]”)表示。[{名稱1:值,名稱2:值2},{名稱1:值,名稱2:值2}]?5、元素值可具有
3、的類型:string,number,object,array,true,false,null注意:1、JSON用冒號(而不是等號)來賦值。每一條賦值語句用逗號分開。整個對象用大括號封裝起來??捎么罄ㄌ柗旨壡短讛?shù)據(jù)。???????2、對象描述中存儲的數(shù)據(jù)可以是字符串,數(shù)字或者布爾值。對象描述也可存儲函數(shù),那就是對象的方法。?6、JSON主要有兩種數(shù)據(jù)結(jié)構(gòu)(1)由key–value對組成的數(shù)據(jù)結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)在不同的語言中有不同的實現(xiàn).例如:在javascript中是一個對象.而在java中是一種Map結(jié)構(gòu),c語言中是struct,其它的
4、語言中可能為record、hashtable等。(2)有序集合、這種數(shù)據(jù)結(jié)構(gòu)在不同語言中可能有l(wèi)ist、vertor、數(shù)組和序列等實現(xiàn)。?7、C#中json數(shù)據(jù)格式的處理List轉(zhuǎn)Json[csharp]?publicstaticstringObj2Json(Tdata)?{???try???{?????System.Runtime.Serialization.Json.DataContractJsonSerializerserializer=newSystem.Runtime.Serialization.Json.Data
5、ContractJsonSerializer(data.GetType());?????using(MemoryStreamms=newMemoryStream())?????{???????serializer.WriteObject(ms,data);???????returnEncoding.UTF8.GetString(ms.ToArray());?????}???}???catch???{?????returnnull;???}?}??Json轉(zhuǎn)List[csharp]?publicstaticObjectJson2Ob
6、j(Stringjson,Typet)?{???try???{?????System.Runtime.Serialization.Json.DataContractJsonSerializerserializer=newSystem.Runtime.Serialization.Json.DataContractJsonSerializer(t);?????using(MemoryStreamms=newMemoryStream(Encoding.UTF8.GetBytes(json)))?????{???????????????retu
7、rn?serializer.ReadObject(ms);?????}???}???catch???{?????returnnull;???}?}??DataTable轉(zhuǎn)Json[csharp]?publicstaticstringDataTable2Json(DataTabledt)?{???if(dt.Rows.Count==0)???{?????return"";???}?????StringBuilderjsonBuilder=newStringBuilder();???//jsonBuilder.Append("{");???
8、?//jsonBuilder.Append(dt.TableName.ToString());????jsonBuilder.Append("[");//轉(zhuǎn)換成多個model的形式???for(inti=0