一、什么是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技术分享平台
网友评论