C#json 解析

 

  Json样例一:

string jsonText=

{Code":0,"Message":"成功","Data":{"BoardProvinceName":"上海","BoardCityName":"上海","BoardDetailAddress":"普陀区怒江北路449弄8号C5","CourierName":"15601804660","CourierMobile":"15601804660","CargoNo":89,"BoardNo":3,"BoxNo":2,"DoorNo":3,"ExpressNo":"333333","CargoPassword":null,"Size":3,"Status":2,"StoreTime":"\/Date(1406772770183)\/","ExtractionTime":"\/Date(1415185496877)\/","CustomerMobile":"15601804660","CourierPId":"321323198902082117"}}}

 

JObject jo = JObject.Parse(jsonText);
string strCode= jo["Code"].ToString();//Code:0
string ddaf = GetJsonValue(jo.Children(), "BoardDetailAddress");//BoardDetailAddress:普陀区怒江北路449弄8号C5

 

   =====================================================================

 

  不带==》 “[”
 string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";

            JObject jsonObj = JObject.Parse(jsonData);
          
            string strname = jsonObj["name"].ToString();
            string strprovince = GetJsonValue(jsonObj.Children(), "province");

 

   =====================================================================

 

 类:

 public  static string GetJsonValue(JEnumerable<JToken> jToken, string key)
        {
            IEnumerator enumerator = jToken.GetEnumerator();
            while (enumerator.MoveNext())
            {
                JToken jc = (JToken)enumerator.Current;


                if (jc is JObject || ((JProperty)jc).Value is JObject)
                {
                    return GetJsonValue(jc.Children(), key);
                }
                else
                {
                    if (((JProperty)jc).Name == key)
                    {

                        return ((JProperty)jc).Value.ToString();
                    }
                }
            }
            return null;
        }

 =================================================================================

        

  带==》 “[”
    string jsonText ="{'name':'test','phone':'18888888888','image':[{'name':'img1','data':'data1'},{'name':'img2','data':'data2'},{'name':'img3','data':'data3'}]}";

    string jsonText1 = "{'name':'test','phone':'18888888888','image':[{'name':'img1','data':'data1'}]}";

     JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
     string zone = jo["name"].ToString();
     string zone_en = jo["phone"].ToString();
     JArray jar = JArray.Parse(jo["image"].ToString());

    string c = zone;
    string d = zone_en;

    for (var i = 0; i < jar.Count; i++)
   {
       JObject j = JObject.Parse(jar[i].ToString());

       string a = j["name"].ToString();

      string b = j["data"].ToString();
    }

  

   多层嵌套

string jsonData1 = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
            JObject jsonObj1 = JObject.Parse(jsonData1);
            JArray jar1 = JArray.Parse(jsonObj1["addr"].ToString());
            JObject j0 = JObject.Parse(jar1[0].ToString());
            JObject j1 = JObject.Parse(jar1[1].ToString());
            string city1 = j0["city"].ToString();   //guangzhou
            string city2 = j0["city"].ToString();   //guiyang

  

 

  以上亲测可用

 

posted @ 2016-04-19 16:22  每天进步一点点!  阅读(1333)  评论(0编辑  收藏  举报