【发布时间】:2017-04-03 21:48:00
【问题描述】:
使用 C#,反序列化动态 JSON 对象的正确方法是什么(即:一些 JSON,其中单个键的类型可以在对象之间更改)?
例如,如果我有这个(完全有效的)JSON:
{
"stuffs": [
{ "content": "abcd" },
{ "content": "efgh" },
{ "content": [
"ijkl",
"mnop"
]}
]
}
其中thing 可以是字符串或字符串数组,如果我定义了这些类,我该如何反序列化?
class ThingContainer {
List<Thing> stuffs;
}
class Thing {
List<string> content;
}
尝试反序列化我(预期)遇到异常:
Newtonsoft.Json.JsonSerializationException: '无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[DummyProject.东西]'
【问题讨论】:
-
stackoverflow.com/questions/18994685/… 这篇文章将帮助您设计解决方案。
-
@Sameer 谢谢,我不知道在搜索现有问题时我是怎么找不到的。我想我复制了一份。
标签: c# json json.net deserialization json-deserialization