你的位置:首页 > ASP.net教程

[ASP.net教程]C#解析Json格式数据小结


最近,遇到了一些不同的Json格式的数据,需要做不同处理才能转化为想要得到的结果,这里总结一下。

第一种形式:status中是{}形式

string json =         @"{'name':'语淺意深','province':'32','city':'1','location':'江苏 南京','status':{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}}";

针对以上格式的数据,创建如下的两个结构体或类

 1   public struct Status 2   { 3     public string created_at { get; set; } 4     public string text { get; set; } 5   } 6  7   public struct JsonData 8   { 9     public string name { get; set; }10     public string province { get; set; }11     public string city { get; set; }12     public string location { get; set; }13     public Status status;14   }

输出结果:

1   JavaScriptSerializer jsSerializer=new JavaScriptSerializer();2   JsonData jd = jsSerializer.Deserialize<JsonData>(json);3   Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status.created_at+jd.status.text));

 

第二种形式:status中是[]形式

string json =        @"{'name':'语淺意深','province':'32','city':'1','location':'江苏 南京','status':[{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}]}";

针对以上格式的数据,创建如下的两个结构体或类

 1   public struct Status 2   { 3     public string created_at { get; set; } 4     public string text { get; set; } 5   } 6   public struct JsonData2 7   { 8     public string name { get; set; } 9     public string province { get; set; }10     public string city { get; set; }11     public string location { get; set; }12     public List<Status> status;13   }

输出结果

1   JavaScriptSerializer jsSerializer=new JavaScriptSerializer();2   JsonData2 jd = jsSerializer.Deserialize<JsonData2>(json);3   Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status[0].created_at+jd.status[0].text));