【发布时间】:2019-09-30 21:03:22
【问题描述】:
我们有一些 JSON 返回如下:
[
{
"id" : "120421421",
"activityId" : "2049192",
...
},
{
"id" : "24442141",
"activityId" : "2141245",
...
},
]
我看到以前有人问过这个问题,但不确定答案是否解释了这里的确切情况。 -- 无法反序列化当前的 JSON 数组(例如 [1,2,3])
问题似乎是数据是一个结果数组,而不仅仅是一种类。
我们使用基于泛型的 API 调用来调用我们的 API。
result.Data = response.Content.ReadAsAsync<T>().Result;
result.Json = response.Content.ReadAsStringAsync().Result;
将结果解析为传入的类型是失败的。我们设置了几个类来处理结果。
public abstract class AvailabilityResult
{
public List<AvailabilityEntry> ResultList;
}
public abstract class AvailabilityEntry
{
public string id { get; set; }
public string activityId { get; set; }
}
【问题讨论】:
-
反序列化为一个集合。
-
@Nkosi 我可以在抽象类中这样做,以免影响处理对 result.data 响应的 apiclient 类的其他用法吗?
-
是的。调用者是您需要进行数组调用的地方。
-
我可以通过更改类定义来实现此功能。请参阅下面的答案,这种方法有什么问题吗?它不必更改用于多个其他 api 的 api 调用程序'
-
您应该能够删除
ResultList属性,因为类本身代表数组
标签: asp.net json asp.net-mvc rest asp.net-core