您的位置:首页 > Web前端 > JavaScript

C#解析JSON字符串总结

2017-12-12 11:04 465 查看
1、通用方式【★★★★★】:这种方式是使用开源的类库Newtonsoft.Json (下载地址http://json.codeplex.com/)。下载后添加dll引用就能用。首先添加引用:usingNewtonsoft.Json;新增:本地dll下载:Newtonsoft.Json.rar 引用:usingNewtonsoft.Json;1.Json字符串普通格式解析(常用)
string jsonText = "{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["zone"].ToString();
string zone_en = jo["zone_en"].ToString();
2.Json字符串嵌套格式解析
string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);string zone = jo["beijing"]["zone"].ToString();string zone_en = jo["beijing"]["zone_en"].ToString();
3.Json字符串数组格式解析string jsonArrayText = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; //"[{'a':'a1','b':'b1'}]即使只有一个元素,也需要加上[]string jsonArrayText = "[{\"a\":\"a1\",\"b\":\"b1\"},{\"a\":\"a2\",\"b\":\"b2\"}]";  //上面写法和此写法效果一样JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);//jsonArrayText必须是带[]数组格式字符串string str = jArray[0]["a"].ToString();4、内置方式:使用.NETFramework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化,很直接。Project p1 = new Project() { Input = "stone", Output = "gold" };JavaScriptSerializer serializer = new JavaScriptSerializer();string jsonStr = serializer.Serialize(p1);  //序列化:对象=>JSON字符串Response.Write(jsonStr);Project p2 = serializer.Deserialize<Project>(jsonStr); //反序列化:JSON字符串=>对象Response.Write(p1.Input + "=>" + p2.Output);
注意:如果使用的是VS2010,则要求当前的工程的Target Framework要改成.Net Framework 4,不能使用Client Profile。当然这个System.Web.Extensions.dll主要是Web使用的,直接在Console工程中用感觉有点浪费资源。
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: