关于Json的总结

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

阅读原文

原文地址:https://www.cnblogs.com/hgmyz/p/12352778.html