【发布时间】:2019-10-14 10:49:50
【问题描述】:
我正在尝试使用外部 Web 服务,并且正在使用 .NET Core 和 Flurl 框架。我收到如下服务的响应:
[
"Successful Request: 96 Results",
[
{
"eventdate":"2019-10-18",
"name":"",
"url":"",
"info":"",
"showtime":null,
"url_tix":"",
"event_owner":"xxx",
"follow_url":"xxx",
"event_image":"xxx",
"venue":"xxx",
"city":"xxx",
"country":"xxx",
"state":""
}
]
]
我有一个如下的 C# 实体定义:
public class ServiceResponce
{
public Event[] Events { get; set; }
}
public class Event
{
[JsonProperty("eventdate")]
public DateTimeOffset Eventdate { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("url")]
public string Url { get; set; }
[JsonProperty("info")]
public string Info { get; set; }
[JsonProperty("showtime")]
public object Showtime { get; set; }
[JsonProperty("url_tix")]
public object UrlTix { get; set; }
[JsonProperty("event_owner")]
public string EventOwner { get; set; }
[JsonProperty("follow_url")]
public Uri FollowUrl { get; set; }
[JsonProperty("event_image")]
public object EventImage { get; set; }
[JsonProperty("venue")]
public string Venue { get; set; }
[JsonProperty("city")]
public string City { get; set; }
[JsonProperty("country")]
public string Country { get; set; }
[JsonProperty("state")]
public string State { get; set; }
}
当我尝试调用 Flurl 方法来使用 Web 服务时,如下所示:
var result = await serviceUrl.GetJsonAsync<ServiceResponce>();
我得到了下面提到的错误:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'xxx.ServiceResponce' 因为该类型需要 JSON 对象(例如 {"name":"value"}) 正确反序列化。要修复此错误 将 JSON 更改为 JSON 对象(例如 {"name":"value"})或更改 将类型反序列化为数组或实现集合的类型 接口(例如 ICollection、IList),例如 List 可以 从 JSON 数组反序列化。也可以添加 JsonArrayAttribute 强制它从 JSON 数组反序列化的类型。小路 '', 第 1 行,位置 1。
你有什么解决办法吗?欢迎任何帮助。
【问题讨论】:
-
我只有得到;在属性中,因此也没有序列化:(。添加 Set; 后也进入属性 def,正确序列化。希望对您有所帮助!