簡體   English   中英

如何獲取json字符串某些部分的值?

[英]How can I get the values of some part of a json string?

我正在使用此Json結構,但我不知道如何獲取“ json”鍵的一部分的值

我正在使用此代碼向API發送請求,返回的是Json對象:

var reqData = (HttpWebRequest)WebRequest.Create(string.Format("http://server_ip/system/message/date/{0}/", txtDate.Text));
            reqData.ContentType = "application/json";
            reqData.Method = "GET";


var answer = (HttpWebResponse)reqData.GetResponse();
List<Dictionary<string, string>> convert = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(answer);

結果是這樣的Json結構:

"[
  {
   \"idMessage\":\"--Message Id--",
   \"idTemplate\":--TemplateId--,
   \"mail\":\"--mail dir--\",
   \"subject\":\"--message subject--\",
    \"json\":\"{
                \\\"Id\\\":\\\"--Person Id--\\\",
                \\\"name\\\":\\\"--Person name--\\\",
                \\\"date\\":\\\"--Register date-\\\",
                \\\"hour\\\":\\\"--Register hour--\\\"
               }\",
    \"senddate\":\"--sent date--\",
    \"status\":0,
    \"template\":null
   }
  ]"

我想從此Json字符串的json部分獲取值( Id,name,date,hour ),有人可以幫助我獲取此值嗎?

json屬性包含一個包含更多JSON的字符串,因此您必須再次對它進行反序列化,就像處理整個外部結構一樣。

因此,現在有了您的convert數組,您可以拉出第一個對象,獲取json的值並將其反序列化:

var json = JsonConvert.DeserializeObject<Dictionary<string, string>>(convert[0]["json"]);

然后,您可以像這樣提取每個值:

var id = json["Id"];

請注意,您問題中的JSON實際上無效。 其中有一些錯誤。 但是我假設它們只是復制/粘貼錯誤,並且Web服務實際上正在返回有效的JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM