错误:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.ObjectModel.ObservableCollection
1[System.Collections.ObjectModel.ObservableCollection
1[DynamicLayoutSample.ElementList]]”,因为该类型需要 JSON 数组(例如 [1, 2,3]) 正确反序列化。要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。路径“页面”,第 1 行,位置 8。
使用 xamarin 表单中的 refit 从 Web 服务获取数据时出现此错误。在模型类下方
public class ApiResponse
{
[JsonProperty(PropertyName = "page")]
public ObservableCollection<ObservableCollection<ElementList>> items { get; set; }
}
public class ElementList
{
[JsonProperty("page")]
public string page { get; set; }
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("objectid")]
public string objectid { get; set; }
[JsonProperty("width")]
public string width { get; set; }
[JsonProperty("height")]
public string height { get; set; }
[JsonProperty("top")]
public string top { get; set; }
[JsonProperty("left")]
public string left { get; set; }
[JsonProperty("transform")]
public string transform { get; set; }
[JsonProperty("backgroundcolor")]
public string backgroundcolor { get; set; }
}
我的json是,
{
"page": [
[
{
"page": "2",
"name": "element",
"objectid": "rectelement_1",
"width": "29%",
"height": "9%",
"top": "21%",
"left": "15%",
"transform": "0deg",
"backgroundcolor": "rgb(0, 0, 0)"
},
{
"page": "2",
"name": "element",
"objectid": "circleelement_1",
"width": "33%",
"height": "12%",
"top": "20%",
"left": "44%",
"transform": "0deg",
"backgroundcolor": "rgb(0, 0, 0)"
}
]
]
}
服务调用方法,
ObservableCollection<ObservableCollection<ElementList>> result { get; set; }
result = new ObservableCollection<ObservableCollection<ElementList>>();
result = await api_interface.GetElements();
这是我的界面
interface ApiInterface
{
[Get("/magazine_pagevalue.php?mid=1&issueno=1")]
Task<ObservableCollection<ObservableCollection<ElementList>>> GetElements();
}