我有这样的文件计划:
{
"_id" : ObjectId("4fbb728d80db260988580e05"),
"titleFull" : "Foo, Inc",
"titleShort" : "Foo",
"countries" : [
ObjectId("4fba04ef80db260988f8b607"),
ObjectId("4fba05f880db260988cd5cfd") ],
"type" : "company"
}
ASP.NET MVC 4 Web API项目中的这类:
public class Company
{
[BsonRepresentation(BsonType.ObjectId)]
public String id { get; set; }
public String titleFull { get; set; }
public String titleShort { get; set; }
//[BsonRepresentation(BsonType.ObjectId)]
//public String[] countries { get; set; } — not working
public ObjectId[] countries { get; set; }
public String type { get; set; }
}
当我在/api/countries
发送GET请求时,我收到了JSON文档(它是mvc反序列化):
{
"id": "4fba097e80db2609886ce7f2",
"titleFull": "Foo, LLC",
"titleShort": "Foo",
"countries": [
{
"_increment": 16299527
"_machine": 8444710
"_pid": 2440
"_timestamp": 1337591023
},
{
"_increment": 13458685
"_machine": 8444710
"_pid": 2440
"_timestamp": 1337591288
}
],
"type": "company"
}
有没有办法像这样做JSON响应:
{
"id": "4fba097e80db2609886ce7f2",
"titleFull": "Foo, LLC",
"titleShort": "Foo",
"countries": ["4fba04ef80db260988f8b607","4fba05f880db260988cd5cfd"],
"type": "company"
}
答案 0 :(得分:3)
Rober Stam在谷歌小组写道:
反序列化代码中存在错误。在数组的情况下,[BsonRepresentation]属性实际上应用于项而不是数组。
我为此创建了一张JIRA票:
因此,如果您遇到同样的问题,请跟踪此票。
答案 1 :(得分:0)
在响应中而不是使用ObjectId for Countries使用字符串数组并添加要在json响应中传递的ID。
public string [] countries {get;组; }
如果你这样使用,json
中的响应会是这样的“countries”:[“4fba04ef80db260988f8b607”,“4fba05f880db260988cd5cfd”],
您正在使用id字段中的字符串。