可以参考使用JSON在线工具 http://www.kjson.com/
可以参考使用JSON在线工具(如 http://www.kjson.com/ )进行解析。
直接按字符串运算解析太容易出错了,这里介绍一种比较好的方式,即通过先反序列化JSON串,再读取Json串中数据。 下面以解析如下JSON串为例介绍代码示例:
{
"a1": "1", "a2": "2", "a3": [ { "b1": "3", "b2": "4" }, { "b1": "5", "b2": "6" } ], "a4": [ "7", "8" ]
}
下载源代码:http://downloads.cmcloud.cn/kis/kis_src/code/Json_CSharp_VS2010.rar
引用组件:System.Web.Extensions
using System.Web.Script.Serialization
private void ReadJson1() {
string sJson = "{\"a1\":\"1\",\"a2\":\"2\",\"a3\":[{\"b1\":\"3\",\"b2\":\"4\"},{\"b1\":\"5\",\"b2\":\"6\"}],\"a4\":[\"7\",\"8\"]}"; JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary<string, object> json = (Dictionary<string, object>)serializer.DeserializeObject(sJson); object value; if (json.TryGetValue("a1", out value)) MessageBox.Show(value.ToString()); // 输出:1 if (json.TryGetValue("a2", out value)) MessageBox.Show(value.ToString()); // 输出:2
}
目标框架:.NET Framework 4及以上
引用组件:Newtonsoft.Json.dll
下载地址http://downloads.cmcloud.cn/kis/kis_src/Newtonsoft.Json.rar
using Newtonsoft.Json.Linq;
private void ReadJson2() {
string sJson = "{\"a1\":\"1\",\"a2\":\"2\",\"a3\":[{\"b1\":\"3\",\"b2\":\"4\"},{\"b1\":\"5\",\"b2\":\"6\"}],\"a4\":[\"7\",\"8\"]}"; string s = ""; //反序列化 JObject O = JsonConvert.DeserializeObject(sJson) as JObject; //使用索引器访问 s += "a1=" + O["a1"] + "\n"; s += "a2=" + O["a2"] + "\n"; s += "a3中的元素总数=" + O["a3"].Count() + "\n"; s += "a3[0]的b1=" + O["a3"][0]["b1"] + "\n"; s += "a3[0]的b2=" + O["a3"][0]["b2"] + "\n"; s += "a3[1]的b1=" + O["a3"][1]["b1"] + "\n"; s += "a3[1]的b2=" + O["a3"][1]["b2"] + "\n"; s += "a4中的元素总数=" + O["a4"].Count() + "\n"; s += "a4[0]=" + O["a4"][0] + "\n"; s += "a4[1]=" + O["a4"][1] + "\n"; MessageBox.Show(s);
}