【发布时间】:2016-11-24 22:51:55
【问题描述】:
我需要用未知键和未知数量的键反序列化 json 文件
{"key1":"val01", "key2":"val02", "key3":"val03", ..., "keyn":"val0n"}
{"key1":"val11", "key2":"val12", "key3":"val13", ..., "keyn":"val1n"}
{"key1":"val21", "key2":"val22", "key3":"val23", ..., "keyn":"val2n"}
我不知道钥匙,甚至不知道n。
我尝试将其解析为字典列表:
res = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsontext);
但我收到了一个例外:
Newtonsoft.Json.dll 中出现“Newtonsoft.Json.JsonSerializationException”类型的异常,但未在用户代码中处理
附加信息:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List
1[System.Collections.Generic.Dictionary2[System.String,System.String]]”,因为该类型需要一个 JSON 数组(例如 [1,2,3])才能正确反序列化。要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或将反序列化类型更改为正常的 .NET 类型(例如,不是整数等原始类型,而不是可以从 JSON 对象反序列化的集合类型(如数组或列表)。 JsonObjectAttribute 也可以添加到类型中,以强制它从 JSON 对象反序列化。
路径“/APL/HVAC/TREG/EACT”,第 1 行,位置 23..
如何摆脱这个异常?
【问题讨论】: