C# 将[BsonExtraElements]展平为键值对json输出

C# 将[BsonExtraElements]展平为键值对json输出,c#,mongodb,mongodb-.net-driver,mongodb-csharp-2.0,C#,Mongodb,Mongodb .net Driver,Mongodb Csharp 2.0,我在c#中使用[BsonExtraElements]来捕获无法映射到我的类的其他数据 公共类问题解答类 { 公共字符串名称{get;set;} [BsonExtraElements] 公共字典附加数据{get;set;} } mongodb中存储的示例数据 { 姓名:约翰 问题1:答案1 问题2:答案2 }, { 姓名:玛丽 问题3:答案3 问题4:答案4 } 在我的控制器中,我获取数据mongoDB,将其反序列化到我的QuestionAnswerClass,并将输出作为JsonResult

我在c#中使用[BsonExtraElements]来捕获无法映射到我的类的其他数据

公共类问题解答类
{
公共字符串名称{get;set;}
[BsonExtraElements]
公共字典附加数据{get;set;}
}
mongodb中存储的示例数据

{
姓名:约翰
问题1:答案1
问题2:答案2
},
{
姓名:玛丽
问题3:答案3
问题4:答案4
}
在我的控制器中,我获取数据mongoDB,将其反序列化到我的QuestionAnswerClass,并将输出作为JsonResult返回

var-client=newmongoclient(“此处的凭据”);
var database=client.GetDatabase(“db”);
var results=database.GetCollection(“问题答案”).AsQueryable().ToList();
返回新的JsonResult(结果);
Json输出如下

[
{
姓名:约翰
其他数据:{
问题1:答案1,
问题2:答案2
}, 
{
姓名:玛丽
其他数据:{
问题3:答案3,
问题4:答案4
},
}
]
问题:如何将额外数据的输出展平到它自己的keyvaluepair。下面是我想要的输出示例

[
{
姓名:约翰,
问题1:答案1,
问题2:答案2
}, 
{
姓名:玛丽,
问题3:答案3,
问题4:答案4
}
]
System.Text.Json(其他任何人都可以阅读Json.NET)支持名为的属性

您可以在模型中这样声明:

[JsonExtensionData]
public Dictionary<string, object> ExtensionData { get; set; }

如果您的序列化程序是JSON.NET或System.Text.JSON,只需添加
[JsonExtensionData]
(了解您在这里使用的序列化程序非常有用)我使用的是System.Text.JSON。还有***[JsonExtensionData],这很有效!非常感谢骆驼。你能发表评论让我把它标记为答案吗?完美的答案!10/10会再问一次。