反序列化时JSON.Net映射循环引用

时间:2017-09-14 06:31:37

标签: c# json json.net

我的数据结构如下所示:foo 1:* bar,例如

{
    id: 1,
    children: [
        { id: 1, fooId: 1, foo: null },
        { id: 2, fooId: 1, foo: null }
    ]
}

在反序列化这个数据结构时,有没有办法让JSON.Net根据键设置实际的对象引用(即在我上面的例子中将foo属性设置为父对象)? / p>

进一步详细说明,这就是我所追求的:

var data = JsonConvert.DeserializeObject<Foo>(json);
Assert.AreEqual(data, data.children[0].Foo)

1 个答案:

答案 0 :(得分:0)

如果您希望定义一组特定的结构来反序列化..

我已经使用此(和类似的实用程序)来开始,然后根据需要进行修改: http://json2csharp.com

还有一个指向quicktype的链接,提供了其他功能。

我已经使用了以下实用程序,您只需下载并构建它,但它完成了工作:

https://github.com/JsonCSharpClassGenerator/JsonCSharpClassGenerator/