C# 複雜情況下json的一種解析方法

得到某短信服務商返回的信息:
"{\"code\":\"SUCCESS\",\"data\":[{\"smsId\":\"1540706661367xx100\",\"mobile\":\"1560xxxx82\",\"customSmsId\":null}]}"
data看來是個集合。
構造如下類;

   public class C_SmsRespon
    {
       public string code;
       public List<C_Data> data;

    }

    public class C_Data
    {
        public string smsId;
        public string mobile;
        public string customSmsId;
    }


發送短信返回:

報錯:無法將類型爲“Newtonsoft.Json.Linq.JObject”的對象強制轉換爲類型“WINAPP_SMS.C_SmsRespon”

     string ret = string.Empty;
                。。。。。。
                StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
                ret = sr.ReadToEnd();
                C_SmsRespon smsrespon = (C_SmsRespon)JsonConvert.DeserializeObject(ret);  //C_SmsRespon
//這句報 無法將類型爲“Newtonsoft.Json.Linq.JObject”的對象強制轉換爲類型“WINAPP_SMS.C_SmsRespon”。

用以下兩個方法中的任意一個都可以,

              

  C_SmsRespon smsrespon = (C_SmsRespon)JsonConvert.DeserializeObject(ret, typeof(C_SmsRespon));  //C_SmsRespon ok!
  C_SmsRespon smsrespon = (C_SmsRespon)JsonConvert.DeserializeObject<C_SmsRespon>(ret);  //C_SmsRespon ok

https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章