目前,API 响应包括两个对我的需要没有用的顶级属性。
a: {
b: {
c: [
data: whichINeed
]
}
}
如果我为此创建模型,我将拥有我想要摆脱的不必要的根对象?如何在 Refit for Windows App 中执行此操作?
Newtonsoft.JSON
您可以尝试使用nuget 包过滤 JSON 字符串。
您提供的 JSON 不完整。我假设这个JSON字符串是一个Object
,最外层是{}
,那么我们可以这样解析它
var obj = JObject.Parse(jsonString);
var c = obj["a"]["b"]["c"];
var myTransferModel = JsonConvert.DeserializeObject<MyModel>(c.ToString());
如果最外层是[]
,请JArray
用于解析。
更新
Refit
封装网络请求和JSON解析。您可以通过直接发送 Web 请求HttpClient
来获取 JSON 字符串。
public async Task<string> GetJsonString(string url)
{
string result = string.Empty;
var client = new HttpClient();
var response = client.GetAsync(url);
if(response.IsSuccessStatusCode)
{
result = await response.Content.ReadAsStringAsync();
}
return result;
}
此致。
RestService.For<T>("host"),
new RefitSettings
{
ContentSerializer = new NewtonsoftJsonContentSerializer(jsonSerializerSettings)
});