我在特定情况下使用JSON.Net进行反序列化时遇到了一些麻烦。
我向服务器发出请求,并使用包含集合的JSON.Net序列化对象。然后,我需要在我的Web应用程序中向该集合添加一个对象,但我往返服务器以获取一个初始化对象以插入到我的集合客户端。然后我插入到我的集合中并尝试保存,但是我收到一个错误,因为新初始化的对象具有与集合中已有的其他内容相同的$ id。
所以服务器收到的JSON是这样的一般形式:
{
"$id": 1,
name: "random",
myArr: [
{"$id": 2, blah: "something"},
{"$id": 1, blah: "This is the item inserted into the collection on the client.
This is the one causing the deserialization error.
Note that the $id is the same as another $id already in this object graph"},
]
}
}
我是否必须亲自手动管理$ id以避免这种情况,或者JSON.net是否有一些内容可以解决这个问题?
答案 0 :(得分:1)
$ id由Json.NET自动生成,但您可以告诉格式化程序不要生成$ id。请参阅以下问题:how to remove $id during JSON serialization
您也可以在客户端删除$ id属性:
delete item.$id;