C# 解析JSON的方法之一:
Step 1:选中项目—>引用—>右键,选择管理NuGet程序包;
Step 2:在搜索框里搜索json,然后选中下载Json.Net,这样就把Json.Net引用到项目中了;
Step 3:例如我有一下一段JSON代码,这段JSON有两层
Json:
{ "errNum": 0, "errMsg": "success", "retData": { "ip": "117.89.35.58", "country": "中国", "province": "江苏", "city": "南京", "district": "鼓楼", "carrier": "中国电信" } }
JObject jobject = (JObject)JsonConvert.DeserializeObject(json);
string ip = jobject["retData"]["ip"].ToString();
通过以上代码就可以把JSON中的IP解析出来了,这相对来说是比较简单的一种做法,当然网上还有其他的方法我暂时没用到就不详表了,我写下来的目的主要是怕自己忘掉,就酱。
二、C# Json转换为对象
得到一个包含多个元素的Json,上面的那个方法就有点吃力了
例如:
json:
[{"detailAccount":"35=35(7天)","duration":"8784","inDoorName":"西入口","inImgGuid":"bccdc059-1e0d-4498-bd1a-50f50abe3b63","inImgPath":"D://ParkingImage//ParkingImage_In_西入口//20160116//20160116144122773_蓝_苏E01010_192.168.3.231.jpg","money":"35.0","passRecordGuid":"941","plate":"苏E01010","regDate":"2016-01-16 14:41:22"},{"detailAccount":"15=15(3天)","duration":"3375","inDoorName":"东入口","inImgGuid":"90b2dbdd-d86c-45f3-bd48-81f6fd521b4c","inImgPath":"D://ParkingImage//ParkingImage_In_东入口//20160120//20160120085028900_蓝_苏E02020_192.168.3.233.jpg","money":"15.0","passRecordGuid":"5097","plate":"苏E02020","regDate":"2016-01-20 08:50:28"}]
加入ParkingInfo 对象包含有车牌Plate,费用Cost,入场时间StartTime,图片路径ImageUrl
List lstPi = new List();
//JSON 解析
private void ResolveJson(string Json)
{
string Jsons="";
JArray ja = (JArray)JsonConvert.DeserializeObject(Json);
foreach(var ss in ja)
{
ParkingInfo pi = new ParkingInfo();
pi.Cost = ss["money"].ToString();
pi.ImageUrl = ss["inImgPath"].ToString();
pi.Plate = ss["plate"].ToString();
pi.StartTime = ss["regDate"].ToString();
lstPark.Add(pi);
}
}
这样就把Json转化为对象,并放到List里,想要取出来的话,就直接遍历就可以了。