一、什么是Json?
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它使得人們很容易的進行閱讀和編寫。
同時也方便了機器進行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999
的一個子集。 JSON采用完全獨立于程序語言的文本格式,但是也使用了類C語言的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
這些特性使JSON成為理想的數據交換語言。
Json的兩種結構
1、對象:對象在js中表示為“{}”括起來的內容,數據結構為 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。
例如:var user = {"name":"Manas","gender":"Male","birthday":"1987-8-8"}
2、數組:數組在js中是中括號“[]”括起來的內容,數據結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。
例如:var userlist = [
{"user":{"name":"Manas","gender":"Male","birthday":"1987-8-8"}},
{"user":{"name":"Mohapatra","Male":"Female","birthday":"1987-7-7"}}
]
二、Json的用途
主要用于數據的傳輸,還可以作為程序的配置文件。
三、C#中操作Json
1、Json序列化
public string GetJsonString()
{
List products = new List(){
new Product(){Name="蘋果",Price=5.5},
new Product(){Name="橘子",Price=2.5},
new Product(){Name="干柿子",Price=16.00}
};
ProductList productlist = new ProductList();
productlist.GetProducts = products;
//return new JavaScriptSerializer().Serialize(productlist));
return JsonConvert.SerializeObject(productlist);
}
public class Product
{
public string Name { get; set; }
public double Price { get; set; }
}
public class ProductList
{
public List GetProducts { get; set; }
}
生成結果:{"GetProducts":[{"Name":"蘋果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}
2、Json反序列化
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie m = JsonConvert.DeserializeObject(json);
string name = m.Name; //name 為 Bad Boys
四、Json和Xml的比較
XML
1)應用廣泛,可擴展性強,被廣泛應用各種場合
2)讀取、解析沒有JSON快
3)可讀性強,可描述復雜結構
JSON
1)結構簡單,都是鍵值對。
2)讀取、解析速度快,很多語言支持
3)傳輸數據量小,傳輸速率大大提高
4)描述復雜結構能力較弱
JavaScript、PHP等原生支持,簡化了讀取解析。成為當前互聯網時代普遍應用的數據結構
歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺
閱讀原文