1. 程式人生 > >Newtonsoft.Json使用中返回Null值或丟擲異常的整理

Newtonsoft.Json使用中返回Null值或丟擲異常的整理

            string jsonstr_right = "{'k':'v','ks':{'kk':'vv','kk2':'vv2'},'c':2}";
            string jsonstr_wrong = "{dkfkd}";
            
            //JObject jobj1 = JObject.Parse(jsonstr_wrong);//當字串不是json格式時報錯
            JObject jobj = JObject.Parse(jsonstr_right);
            //JObject jobj = new JObject(jsonstr_wrong);//當字串不是json格式時報錯
            //JObject jobj = new JObject(jsonstr_right);//當字串是json格式時,也報錯,醉了
            //JObject jobj = new JObject(new { k="v", Name="name",Age=20});//傳一個物件也報錯,真不知道這個方法有什麼用
            //object result = jobj["kk"];//當key不存在時返回null
            //string result = jobj.Value<string>("kk");//當key不存在時返回null
            //string result = jobj.Value<string>("cc");//當key不存在時返回null
            //int result = jobj.Value<int>("cc");//當key不存在時返回0
            //int result = jobj.Value<int>("k");//當value不能轉換成指定型別時報錯
            //object result = jobj["k"]["kk"];//任意一個key不存在就報錯
            //object result = jobj.Value<JToken>("k").Value<string>("kk");//任意一個key不存在就報錯
            //JObject//JSON物件
            //JArray//Json陣列
            //JToken//用於存放Linq to JSON查詢後的結果
            //JProperty//物件中的屬性,以"key/value"形式

            string result = jobj.Value<string>("k");
            Console.WriteLine(result);
            Console.ReadKey();