所以我想查询一个不是Gatsby的GraphQL数组的JSON文件,但我真的不知道怎么做。
据我所知gatsby-transformer-json
个文档 - 它只支持加载数组,并可通过allFileNameJson
架构访问它们。
我的gatsby-config
插件(此问题只有必要的插件):
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'data',
path: `${__dirname}/src/data`
}
},
'gatsby-transformer-json'
然后让我们在src/data
中说我有一个something.json
文件,如下所示:
{
"key": "value"
}
现在我想查询来自something.json
文件的数据,但我无法查询somethingJson
架构(尝试使用盖茨比的GraphiQL)。
有人可以指出我做错了什么或者我该如何解决这个问题?
答案 0 :(得分:2)
好的,只要他们有父(文件夹),就可以查询单个目标文件。
我们来看看这些参数:
gatsby-source-filesystem
已配置为src/data
test.json
文件位于src/data/test.json
,其中包含{ "key": "value" }
个内容现在test.json
文件实际上有一个父(data
文件夹) - 您可以像这样查询test.json
中的字段:
{
dataJson {
key
}
}
但是将它们直接放在根文件夹中是一种不好的做法,因为当您存储另一个json文件时,即secondtest.json
内容为{ "key2": "value2" }
,并将使用与上述相同的查询进行查询,您将仅从单个节点获取数据(不确定它是第一个还是最后一个遇到的节点),
因此,这种情况的完美解决方案是将单个对象的json文件存储在单独的文件夹中,每个文件夹只有一个json。
例如,您有一些“关于我”数据:
about
src/data
文件夹
index.json
{ "name": "John" }
文件
像这样:
{
aboutJson {
name
}
}
就是这样。