【发布时间】:2018-01-07 18:16:48
【问题描述】:
所以我使用 Json.net 将 REST API 返回的 json 数据反序列化到服务器,它返回的数据结构是:
{ "keyXXX" : [[1,2,3,...]...], "last": 12345 }
问题是“key”也是数据的一部分,它不是一个名为“key”的字段,所以我不能使用类/结构,我必须在第一部分使用IDictionary<string, int[][]>,但随后“最后”部分将引发异常,因为它是单个整数而不是数组数组。
这是我尝试过的:
var dec = JsonConvert.DeserializeObject<IDictionary<string, int[][]>>(data);
这会引发 json 异常:
Newtonsoft.Json.JsonSerializationException:将值 1501555920 转换为类型“System.Decimal[][]”时出错。路径“最后一个”。
//define a class
public class DPInfo
{
public decimal[][] points { get; set; }
public long last { get; set; }
}
var dec = JsonConvert.DeserializeObject<DPInfo>(data);
这将不起作用,因为数组的字段名称是动态的,因此points 在此之后将不包含任何内容。
有什么办法可以解决这个问题?
【问题讨论】:
-
JSON 中是否只有一个
keyXXX或多个具有不同XXX值的XXX? -
只有一个,但名称不同
标签: c# json json.net json-deserialization