繁体   English   中英

Asp.Net Web API 列表 model 返回列表<list> ></list>

[英]Asp.Net Web API List model is returning List<List>>

我通过 ajax 呼叫第三方 API 并返回数据 Model object。

public class AddressModel
{
     public List<Address> address {get; set;}
     public List<Component> components {get; set;}
}

public class Address
{
    public string address1 { get; set;}
    public string address2 { get; set;}
    public string postalCode { get; set;}
}

Api Controller:

[HttpGet]
public IHttpActionResult GetAddress(string id)
{
     ** code **
     var addr = _service.GetAddressById(id);
     return Ok(addr);
}

public AddressModel GetAddressById(string id)
{
    ** code **

    HttpResponseMessage response = client.GetAsync(uri).Result;
    return response.Content.ReadAsAsync<AddressModel>().Result;
}

但是我得到的 Json 数据如下:

"address" : [
    {
        "address1: "Via Benedetto",
        "address2: null,
        "postalCode": null
    },
    {
        "address1": null,
        "address2": "Viadanna",
        "postalCode": null
    },
    {
        "address1": null,
        "address2": null,
        "postalCode": "01234"
    }
 ]

它正在返回一个列表列表。 它应该只返回一个列表

我期待这个:

"address" : [ 
    { 
       "address1: "Via Benedetto", 
       "address2": "Viadanna", 
       "postalCode": "01234" 
    } 
]

试试这个(使用 Newtonsoft.Json )

if (response.IsSuccessStatusCode)
{
var stringData =  response.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<AddressModel>(stringData);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM