来自 Gatsby 中单个对象 JSON 文件的 GraphQL 模式
GraphQL schema from a single object JSON file in Gatsby
所以我想查询一个 JSON 文件,它不是来自 Gatsby 的 GraphQL 的数组,但我真的不知道该怎么做。
据我了解 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
我可以查询的模式(尝试使用 Gatsby 的 GraphiQL)。
有人可以指出我做错了什么或者我该如何解决这个问题?
好的,所以只要有父(文件夹)就可以查询单对象文件。
让我们采用这些参数:
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 Me"数据:
- 在您的
src/data
中创建一个 about
文件夹
- 创建一个
index.json
文件,即 { "name": "John" }
- 查询您的数据
像这样:
{
aboutJson {
name
}
}
就是这样。
所以我想查询一个 JSON 文件,它不是来自 Gatsby 的 GraphQL 的数组,但我真的不知道该怎么做。
据我了解 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
我可以查询的模式(尝试使用 Gatsby 的 GraphiQL)。
有人可以指出我做错了什么或者我该如何解决这个问题?
好的,所以只要有父(文件夹)就可以查询单对象文件。
让我们采用这些参数:
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 Me"数据:
- 在您的
src/data
中创建一个 - 创建一个
index.json
文件,即{ "name": "John" }
- 查询您的数据
about
文件夹
像这样:
{
aboutJson {
name
}
}
就是这样。