1. 程式人生 > 其它 >C#使用JObject解析JSON

C#使用JObject解析JSON

C#中很難直接操作JsonResult型別,也沒有提供更好的方法。 解決方案:序列化成Json字串,再轉換為JObject型別。

操作return Json(result);先序列化成Json字串,再轉換為JObject型別

1 ActionResult ar= em.Reject(morder.ToString(), remark, Duser, "DINGDING", taskresult);  //return Json(result);
2 var jsonAR = Newtonsoft.Json.JsonConvert.SerializeObject(ar);
3 JObject jo = JObject.Parse(jsonAR);//
將Json字串轉為JObject型別,後續可方便直接取值 4 var ARData = jo["Data"]; 5 var ARDataErrors = jo["Data"]["Errors"][0].ToString();

操作Json

static void Main(string[] args)
        {
            string strJson = "{\"Name\" : \"Ben\", \"Age\" : 30, \"education\" : [{\"School\" : \"university\" , \"year\":4},{\"School\" : \"highschool\" , \"year\":4}] }";
            JObject jObject = JObject.Parse(strJson);
            string userName = (string)jObject["Name"];
            Console.WriteLine(userName);//CPU  
            JArray jsonColleagues = (JArray)jObject["education"];
            Console.WriteLine(jsonColleagues.Count());
            Console.WriteLine(jsonColleagues.Count);

            Console.WriteLine((string)((JArray)jObject["education"])[0]["School"]);
            Console.WriteLine((string)jsonColleagues[0]["School"]);
            Console.WriteLine((string)jsonColleagues[0]["year"]);
            Console.ReadLine(); ;
        }