问题描述
在我的 API 中,我使用 Refit 创建了一个客户端来调用第三方 API。问题是第三方 API 返回不一致的数据。它返回城市名称和邮政编码,但有时这些是整数或字符串:
{
"input": "Pa","cities": [
{
"code": "09100","city": "PAMIERS"
},{
"code": "09130","city": "PAILHES"
},{
"code": 10100,"city": "PARS LES ROMILLY"
},{
"code": 10160,"city": "PAISY COSDON"
},{
"code": 10210,"city": "PARGUES"
}
]
}
所以我创建了这条路线:
public async Task<IActionResult> SearchCity([FromForm] CitySearch data)
{
var api = RestService.For<ICityAPI>("https://vicopo.selfbuild.fr");
try
{
var search = await api.SearchCityListAsync(data.search);
return Ok(search);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status502BadGateway,ex);
}
}
谁使用这个客户端:
public interface ICityAPI
{
[Get("/search/{search}")]
Task<CityList> SearchCityListAsync(string search);
}
最终将接收到的 Json 绑定到这个模型:
public class CityList
{
[JsonProperty("cities")]
public List<City> Cities { get; set; }
}
public class City
{
[JsonProperty("city")]
public string city { get; set; }
[JsonProperty("code")]
public string code { get; set; }
}
如果这个 Json 不是常量,我如何将它绑定到我的模型?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)