json文件

来源:互联网 发布:什么加湿器好用 知乎 编辑:程序博客网 时间:2024/06/05 05:11
JSON(全称为JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。
一:JSON VS XML
 1.JSON和XML的数据可读性基本相同
 2.JSON和XML同样拥有丰富的解析手段
 3.JSON相对于XML来讲,数据的体积小
 4.JSON与JavaScript的交互更加方便
 5.JSON对数据的描述性比XML较差
 6.JSON的速度要远远快于XML
二:GWT与JSON
GWT中支持的客户端服务器端方法调用和数据传递的标准格式是RPC,JSON并不是GWT支持的标准的数据传递格式。那么如何使用JSON来作为GWT的数据传递格式呢?需要以下几步。
 1.引用HTTP和JSON支持。
 2.在客户端创建JSON数据,提交到服务器
 3.在服务器上重写数据格式解析的代码,使之支持JSON格式的数据
 4.在服务器上组织JSON格式的数据,返回给客户端
 5.客户端解析服务器传回的JSON数据,正确的显示.
三:JSON 语法规则
JSON 语法是JavaScript对象表示法语法的子集
 1.数据在名称/值对中
 2.数据由逗号分隔
 3.花括号保存对象
 4.方括号保存数组
 5.JSON 名称/值对
四:JSON 数据的书写格式是:名称/值对
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:"firstName" : "John"
 1.JSON值可以是:数字(整数或浮点数),字符串(在双引号中),逻辑值(true 或false),数组(在方括号中),对象(在花括号中),null。
 2.如果JSON中含有转义字符,则需要转义。例如文件路径中需要使用"\"而不是""。例如:{"file":"C:\\a.txt"}。
五:JSON类
 1.JSONObject:可以看作是一个json对象。
   JSONStringer:json文本构建类。
  JSONArray:它代表一组有序的数值。
   JSONTokener:json解析类
   JSONException:json中用到的异常
  JSONObject, JSONArray来构建json文本
 2.getType和optTypeapi的使用
  getType可以将要获取的键的值转换为指定的类型,如果无法转换或没有值则抛出JSONException 
  optType也是将要获取的键的值转换为指定的类型,无法转换或没有值时返回用户提供或这默认提供的值 
 3.object和endObject必须配对使用
 4.json文本解析类JSONTokener
   按照RFC4627规范将json文本解析为相应的对象。
  对于将json文本解析为对象,只需要用到该类的两个api,api基本就是用来查看json文本中的文本的
c# 解析JSON
 protected voidPage_Load(object sender, EventArgs e)
   {
       varjdata="[{"id":0,"email":"abccd","age":0},{"id":1,"email":"abc1","age":2}]";
       //stringjsonData = context.Request.Form["jdata"]; //取得这个json字符串
       stringjsonData = jdata;  //取得这个json字符串
       stringdatastr = "";

       //调用上面这个方法,把json字符串传进去,就得到一个对象集合了
       List DataReust =JSONToObject>(jsonData);
       for (int i = 0; i < DataReust.Count;i++)
       {
           int id =DataReust[i].id;
           stringemail = DataReust[i].email;
           int age =DataReust[i].age;
           datastr +="id:" + id + "  email:" + email + " age:" + age+"";
       }
   }
  
 
   //做一个类id,email,age和json格式一致
    public class Person
    {
       public intid { set; get; }
       publicstring email { set; get; }
       public intage { set; get; }
    }
 
    //这个一个反序列化的方法,用于返回泛型集合
    public static TJSONToObject(string jsonText)
    {
      JavaScriptSerializer jss = new JavaScriptSerializer();
       returnjss.Deserialize(jsonText);
    }

c# 解析JSON的几种办法 
对比 

主要类命名空间限制内建LINQ支持DataContractJsonSerializerSystem.Runtime.Serialization.Json通用否JavaScriptSerializerSystem.Web.Script.Serialization只能在Web环境使用否JsonArrayJsonObjectJsonValueSystem.Json只能在Silverlight中使用是JsonConvertJArrayJObjectJValueJPropertyNewtonsoft.Json通用是



0 0
原创粉丝点击