JSON入门教程

前言

    小编在项目中遇到了JObject、JArray两种数据,在之前的C#中见到的不多,其实他们分别是json对象、json数组,是Linq to Json中的内容,让我们再来回顾一下Json的知识吧。

正文

Json是什么?

  • Json(JavaScript Object Notation)是指JavaScript 对象表示法,可以用来表示String、Number、Boolean、数组甚至对象等数据。
  • Json类似xml,是存储和交换文本信息的语法。
  • Json是轻量级的文本数据交换格式。
  • Json使用JavaScript语法来描述数据对象,独立于语言和平台,适合于服务器与JavaScript客户端的交互。

为什么使用Json?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用;
- 使用XML
1. 读取XML文档
2. 使用XML DOM来循环遍历文档
3. 读取值并存储在变量中
- 使用JSON
1. 读取JSON字符串
2. 用eval( ) 处理JSON字符串

Json示例

{
   "people":[
      {"name":"Bill","age":"23",sex:"男"},
      {"name":"Phobe","age":"23",sex:"女"},
      {"name":"Geoge","age":"22",sex:"男"},
    ]
}
//这个 people 对象是包含 3 个人记录(对象)的数组。

Json的语法规则

  • 花括号表示对象
    var object = {};
  • 方括号表示数组
    var arr =[];
  • 属性名要用双引号包围起来
    var student ={ "name":"tracy"}
  • 对象和属性值之间用冒号隔开
    var student ={ "name":"linda"}
  • 多个属性由逗号分隔
    var students = {"name": "judy","age":18}
  • JSON数据的书写格式是:名称/值对
    name":"helen"//等价于JavaScript语句 name = "helen

Json怎么用?

  • 把JSON文本转换成JavaScript对象
         从Web服务器上读取JSON数据(作为文件或HttpRequest),将JSON数据转换为JavaScript对象,然后在网页中使用该数据。
         由于JSON语法是JavaScript语法的子集,JavaScript函数eval()可用于将JSON文本转换成JavaScript对象。
var employeeInfo = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';  
//注意两边的括号 
var  obj = eval("(" + employeeInfo + ")");
alert(obj.employees[i].firstname)//Bill
  • 序列化与反序列化
        来看一看廖老师怎么说:如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。
        简单理解就是对象序列化为二进制序列,才能在网络上传送,接收方则需要将二进制序列再恢复为对象。
//序列化类
public class Personnel{
   public int Id {get;set;}
   public string Name{get;set;}
}
//执行序列化与反序列化
private void fmMain_Load(object sender, EventArgs e)
 {
      Personnel personnel = new Personnel();
      personnel.Id = 1;
      personnel.Name = "小仙女";
      JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
      //执行序列化 需要引入System.Web.Script.Serialization命名空间
      string r1 = jsonSerializer.Serialize(personnel); //r1输出结果:{"Id":1,"Name":"小仙女"} 
      //执行反序列化
      Personnel _Personnel = jsonSerializer.Deserialize<Personnel>(r1);
 }

总结

    JSON的知识暂且介绍到这里,小编在项目中一直用,不明白为什么这么用,这次清楚了一些,下一篇博客将为大家介绍JSON解析的一些知识,敬请期待!

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院