在JSON.Net序列化json中配置$ id

时间:2016-01-26 17:58:23

标签: javascript c# json serialization json.net

我在特定情况下使用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是否有一些内容可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

$ id由Json.NET自动生成,但您可以告诉格式化程序不要生成$ id。请参阅以下问题:how to remove $id during JSON serialization

您也可以在客户端删除$ id属性:

delete item.$id;