需要先引用命名空間
Newtonsoft.Json 和 Newtonsoft.Json.Linq
1.可自行網上下載 Newtonsoft.Json.dll ,在項目中添加引用
2.或者是直接使用VS的內置NuGet包管理器中搜索Newtonsoft.Json 安裝到指定項目
1.針對簡單的json串
需要處理的json串
“{
“message”: “操作成功”,
“data”: “This is a data”,
“success”: “true”
}”
解析方法:
string json = "{\"message\": \"操作成功\",\"data\": \"This is a data\",\"success\": \"true\"}";
Object obj = JsonConvert.DeserializeObject(json);
Newtonsoft.Json.Linq.JObject js = obj as Newtonsoft.Json.Linq.JObject;//把上面的obj轉換為 Jobject對象
string data = js["data"].ToString();
補充:
dynamic model = JObject.Parse("{\"value\":\"巧克力1\",\"color\":\"#173177\"}");
string sss = model.value;
不知道key的情況下用下面程序拿到key和value
JObject json = (JObject)JsonConvert.DeserializeObject(listdata);
string openId = json["OpenID"].ToString();
foreach (var jp in json)
{
string key = jp.Key.ToString();
string val = jp.Value.ToString();
}
2.針對簡單的json串數組
需要處理的json串數組
[
{
“deviceID”: “110722”,
“discloseTime”: “2019-03-08 01:00:00”,
“projectId”: “24”
},
{
“deviceID”: “110732”,
“discloseTime”: “2019-03-08 15:40:12”,
“projectId”: “24”
},
{
“deviceID”: “110735”,
“discloseTime”: “2019-03-08 16:40:12”,
“projectId”: “24”
}
]
解析:
string json = "[{\"deviceID\": \"110722\",\"discloseTime\": \"2019-03-08 01:00:00\",\"projectId\": \"24\"},{\"deviceID\": \"110732\",\"discloseTime\": \"2019-03-08 15:40:12\",\"projectId\": \"24\"},{\"deviceID\": \"110735\",\"discloseTime\": \"2019-03-08 16:40:12\",\"projectId\": \"24\"}]";
Object obj = JsonConvert.DeserializeObject(json);
Newtonsoft.Json.Linq.JArray jarray = obj as Newtonsoft.Json.Linq.JArray;//把上面的obj轉換為 Jobject對象
List<Body> bodyList = new List<Body>();
for (int i = 0; i < jarray.Count; i++)
{
string listdata = jarray[0].ToString();
Object obj1 = JsonConvert.DeserializeObject(listdata);
Newtonsoft.Json.Linq.JObject js1 = obj1 as Newtonsoft.Json.Linq.JObject;//把上面的obj轉換為 Jobject對象
Body body = new Body
{
DeviceID= js1["deviceID"].ToString(),
DiscloseTime = js1["discloseTime"].ToString(),
ProjectId = js1["projectId"].ToString()
};
bodyList.Add(body);
}
3.針對復合的json串
需要處理的json數據
{
“message”: “操作成功”,
“data”: [
{
“deviceID”: “110722”,
“discloseTime”: “2019-03-08 01:00:00”,
“projectId”: “24”
},
{
“deviceID”: “110732”,
“discloseTime”: “2019-03-08 15:40:12”,
“projectId”: “24”
},
{
“deviceID”: “110735”,
“discloseTime”: “2019-03-08 16:40:12”,
“projectId”: “24”
}
],
“success”: ”true“
}
解析:
List<Body> bodyList = new List<Body>();
Object obj = JsonConvert.DeserializeObject(json);
Newtonsoft.Json.Linq.JObject js = obj as Newtonsoft.Json.Linq.JObject;//把上面的obj轉換為 Jobject對象
JArray jarray = (JArray)js["data"];
for (int i = 0; i < jarray.Count; i++)
{
string data = jarray[0].ToString();
Object obj1 = JsonConvert.DeserializeObject(data);
Newtonsoft.Json.Linq.JObject js1 = obj1 as Newtonsoft.Json.Linq.JObject;//把上面的obj轉換為 Jobject對象
Body body = new Body
{
DeviceID = js1["deviceID"].ToString(),
DiscloseTime = js1["discloseTime"].ToString(),
ProjectId = js1["projectId"].ToString()
};
bodyList.Add(body);
}
————————————————
版權聲明:本文為CSDN博主「MelanceXin」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/q672405097/article/details/88356515