如何将list obj转换为client.postasjsonasync



如何将list 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.

最新更新