C# 我可以在GraphQL中将.NET字典表示为JSON字典吗?

C# 我可以在GraphQL中将.NET字典表示为JSON字典吗?,c#,.net,dictionary,graphql,graphql-dotnet,C#,.net,Dictionary,Graphql,Graphql Dotnet,当我序列化为JSON时,我习惯于.NET字典成为对象,键作为属性,值作为它们的值。() 我正在使用GraphQL并努力实现类似的结果。我的根查询数据基本上是一个字典。到目前为止,我得到的最接近的结果是: { "data": { "outterDict": [ { "key": "THING_1", "innerDict": [ { "key": "key1", "val":

当我序列化为JSON时,我习惯于.NET字典成为对象,键作为属性,值作为它们的值。()

我正在使用GraphQL并努力实现类似的结果。我的根查询数据基本上是一个
字典
。到目前为止,我得到的最接近的结果是:

{
  "data": {
    "outterDict": [
      {
        "key": "THING_1",
        "innerDict": [
          {
            "key": "key1",
            "val": "val1"
          },
          ...
        ]
      },
      {
        "key": "THING_2",
        "innerDict": [
          {
            "key": "key2",
            "val": "val2"
          },
          ...
        ]
      }
    ]
  }
}
但我希望它更接近这个:

{
  "data": {
    "collection": {
      "THING_1": {
        "key1": "val1",
        ...
      },
      "THING_2": {
        "key2": "val2",
        ...
      }
    }
  }
}
我挣扎是因为,不是字典

我不觉得我所做的是不合理的。让关键点成为关键点似乎是正确的,并且是共享此数据的最有用的方式(例如as)


在GraphQL中有这样做的方法吗?在GraphQL.Net中有这样做的方法吗?

经过大量的研究,这似乎不在GraphQL和的规范中

GraphQL希望所有可能的属性(即映射/字典中的键)都提前知道。这意味着我们失去了在运行时传递字典的很多价值

因此,尽管GraphQLJSON比惯用JSON更详细,但它是故意这样做的