我有一个JSON字符串。
[
{
"target":"FDOL00001",
"datapoints":[
{
"y":72.564,
"x":1523858700
}
]
},
{
"target":"FDOL00001",
"datapoints":[
{
"y":86.366,
"x":1523858700
}
]
},
{
"target":"FDOL00001",
"datapoints":[
{
"y":73.90195818815343,
"x":1523858700
}
]
}
]
我正在尝试将其反序列化为集合。但是我遇到了一个错误。能否有人指导我正确的方法来解决这个问题?
class datapoint
{
[JsonProperty("x")]
public int x { get; set; }
[JsonProperty("y")]
public decimal y { get; set; }
}
class jsonMapper
{
[JsonProperty("target")]
public string target { get; set; }
[JsonProperty("datapoints")]
public datapoint datapoints { get; set; }
}
我正在尝试使用以下代码进行转换。
var json = JsonConvert.DeserializeObject<List<jsonMapper>>(objText);
我遇到的错误是:
无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'ISSPortal2.datapoint',因为该类型需要一个 JSON 对象(例如 {\"name\":\"value\"})才能正确反序列化。 要解决此错误,请将 JSON 更改为 JSON 对象(例如 {\"name\":\"value\"}),或将反序列化的类型更改为数组或实现集合接口的类型(例如 ICollection、IList),如可以从 JSON 数组反序列化的 List。也可以向类型添加 JsonArrayAttribute,以强制从 JSON 数组反序列化。 路径 '[0].datapoints',行 1,位置 40。
我已经查过了这个 。但它没有起作用。 我的代码有什么问题。请帮助我识别。先感谢您 :)
public datapoint datapoints { get; set; }
应该改为List<datapoint> datapoints { get; set; }
...? - Paul Suart