【发布时间】:2016-05-11 21:31:42
【问题描述】:
在 documentdb 中,我有一些 json 结构。
{ "blah": "blahblahblah",
"blah": null,
"dynamicBlah": {
"propertyhere": [
"xyz"
]
},
}
在我的 c# 模型中,它反序列化为 一个对象很好,除了 dynamicBlah 对象作为 JObject 存在,但是当它作为 JSONResult 返回给客户端(再次序列化)时,该属性就像这样出来......
"dynamicBlah": [
[
[
[]
]
]
]
一些事情:
- 该属性的用途只是传递记录中的任何自定义 json,因此类型可以是任何类型,因此它必须是动态或对象类型。
- 我不能只是将其反序列化为字符串,因为某些 C# 可能需要访问该对象,并且必须不断将其转换为 json 并返回,这会很痛苦
- 我知道 Json.net 可以序列化/反序列化对象和动态,因为我已经在其他地方完成了它,没有任何问题。但是,从文档 db 中获取它会导致序列化程序忽略动态的子属性。
- 是的,我已经尝试标记它 [JsonProperty]
- 是的,我已经将它作为动态和对象进行了尝试
- Json.net 显然认识到那里有东西,因为它输出了多个空级别的 json。
- 当对象既是对象又是集合时会发生这种情况
谁能告诉我如何让 Json.net 不忽略子属性?最终结果应该是与 documentdb 中相同的 json 结构。
更新:
不让它成为字典不起作用,因为它只输入顶级,所以我最终得到 p>
"dynamicBlah": {"xyz": [
[]
]
}
当 xyz 是另一个对象或字符串列表或任何东西时......
【问题讨论】:
标签: dynamic json.net azure-cosmosdb