如何在改装中设置自定义 JSON 序列化程序



目前API响应包括两个顶级属性,这些属性对我的需要没有用。

a: {
b: {
c: [
data: whichINeed
]
}
}

如果我为此创建模型,我将有想要摆脱的不必要的根对象? 如何在 Windows 应用程序改装中执行此操作?

您需要软件包Refit.Newtonsoft.Json上存在的NewtonsoftJsonContentSerializer

然后,将其添加到改装设置:

RestService.For<T>("host"),
new RefitSettings
{
ContentSerializer = new NewtonsoftJsonContentSerializer(jsonSerializerSettings)
});

可以尝试使用 nuget 包筛选 JSON 字符串Newtonsoft.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 解析。您可以直接通过HttpClient发送 Web 请求以获取 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;
}

此致敬意。

相关内容

  • 没有找到相关文章

最新更新