我可以在我的 GraphQL 中将我的 .NET 词典表示为 JSON 词典吗?
Can I represent my .NET dictionaries as JSON dictionaries in my GraphQL?
当我序列化到 JSON 时,我习惯于 .NET 字典成为对象,键作为属性,值作为它们的值。 (The Json.Net docs have a succinct example.)
我正在使用 GraphQL 并努力获得类似的结果。我的这个根查询的数据基本上是 Dictionary<MyEnum,Dictionary<string,string>>
。到目前为止我得到的最接近的是:
{
"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",
...
}
}
}
}
我正在苦苦挣扎,因为 GraphQL .Net only seems to understand lists,而不是字典。
并不觉得我想做的事不合理。让键成为键似乎是正确的,并且是共享此数据的最有用的方式(例如 suggested by this answer)。
有没有办法在 GraphQL 中做到这一点?有没有办法在 GraphQL .Net?
中做到这一点
经过大量研究,这似乎不在 GraphQL 和 is therefore unsupported in GraphQL.Net 的规范中。
GraphQL 期望提前知道所有可能的属性(即 map/dictionary 中的键)。这意味着我们在 运行 时间失去了很多传递字典的价值。
所以虽然 GraphQL JSON 比惯用语更冗长 JSON,但它是故意这样的。
当我序列化到 JSON 时,我习惯于 .NET 字典成为对象,键作为属性,值作为它们的值。 (The Json.Net docs have a succinct example.)
我正在使用 GraphQL 并努力获得类似的结果。我的这个根查询的数据基本上是 Dictionary<MyEnum,Dictionary<string,string>>
。到目前为止我得到的最接近的是:
{
"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",
...
}
}
}
}
我正在苦苦挣扎,因为 GraphQL .Net only seems to understand lists,而不是字典。
并不觉得我想做的事不合理。让键成为键似乎是正确的,并且是共享此数据的最有用的方式(例如 suggested by this answer)。
有没有办法在 GraphQL 中做到这一点?有没有办法在 GraphQL .Net?
中做到这一点经过大量研究,这似乎不在 GraphQL 和 is therefore unsupported in GraphQL.Net 的规范中。
GraphQL 期望提前知道所有可能的属性(即 map/dictionary 中的键)。这意味着我们在 运行 时间失去了很多传递字典的价值。
所以虽然 GraphQL JSON 比惯用语更冗长 JSON,但它是故意这样的。