簡體   English   中英

如何將列表obj轉換為client.PostAsJsonAsync

[英]how to convert list obj to client.PostAsJsonAsync

如何將列表obj轉換為client.PostAsJsonAsync

類模型

public class CheckStatusModel
{
    public int OBJID { get; set; }
    public string SUPID { get; set; }
    public string STATUSPTC { get; set; }  
    public int DATEACTIVESUP { get; set; }
}

public class CheckStatus
{
    public CheckStatusModel Data { get; set; }
    public string StatusCode { get; set; }
}

發送請求以使用查找Web API REST服務資源
HttpClient **

using (var client = new HttpClient())
{
     client.BaseAddress = new Uri(Baseurl);
     client.DefaultRequestHeaders.Clear();
     client.DefaultRequestHeaders.Accept.Add(new 
     MediaTypeWithQualityHeaderValue("application/json"));
     HttpResponseMessage response = await client.PostAsJsonAsync("api/RPDeployment/BIL_CFP_BOX_CHECK_STATUSPTC", checkStatusParam);
     if(response.IsSuccessStatusCode)
       {
            var EmpResponse = response.Content.ReadAsStringAsync().Result;
            ListStatusPTC = JsonConvert.DeserializeObject<List<CheckStatus>>(EmpResponse);// not convert ????

       }
 }

EmpResponse

{
  "data": [**
    {
      "OBJID": 1012540462,
      "SUPID": 1041252952,
      "STATUSPTC": 1,
      "DATEACTIVESUP": 0
    }
  **],
  "StatusCode": 200
}

請幫幫我 ??

哦,我明白了。 您試圖將對象(由{}表示)反序列化為列表(在JSON中由[]表示)。

您需要按以下方式更改CheckStatus類:

public class CheckStatus
{
    public List<CheckStatusModel> Data { get; set; } // data is an array so this needs to be some kind of collection
    public string StatusCode { get; set; }
}

像這樣反序列化:

ListStatusPTC = JsonConvert.DeserializeObject<CheckStatus>(EmpResponse); // the JSON contains an object, so this needs to deserialize to an object. you can't deserialize to a list.

暫無
暫無

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

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