我想创建基于Gatsby框架的Azure Static Web App.我对Gatsby/Reaction/javascrip开发还是个新手.

我通过axios在我的Gatsby-node.js文件中创建了一个GET请求.

const getBlogs = endpoint => axios.get(`https://example.com/data-api/rest/blogs${endpoint}`);

 const getBlogsData = ids =>
  Promise.all(
    ids.map(async id => {
      const { data: blogs } = await getBlogs(`/glogs/${id}`);
      return { ...blogs };
    })
  );

 exports.createPages = async ({ actions: { createPage } }) => {
    const allBlogs = await getBlogsData(['1', '2', '3', '4']);

我对allBlog对象的响应如下所示:

[
  { value: [ [Object] ] },
  { value: [ [Object] ] },
  { value: [ [Object] ] },
  { value: [ [Object] ] }
]

最后,我希望将一个包含结果/数据的数组解析到我的Gatsby组件 我的Gatsby组件如下所示:

const ListBlogsComp = ({ pageContext: { allRezepte } }) => {
   return (
    <div style={{ width: 960, margin: '4rem auto' }}>
    <h1>ListBlogsComp</h1>
    {allBlogs.map(blog=> (
        <li key={blog.id}>
          <h2>{blog.id}</h2>
          <p>{glog.name}</p>
        </li>
      ))}
  </div>

  );
}

我如何访问数据? 如何删除"value" node 以显示component/html文件中的真实数据?

我试着找一个类似于"Value"的函数.我是否必须将变量转换为其他数据类型,然后对其进行解析?

推荐答案

您可以重新映射数据 struct 并删除多余的"Value"键,您可以在将Gatsby-node.js文件传递给组件之前使用map函数转换数据.

exports.createPages = async ({ actions: { createPage } }) => {
  const allBlogsData = await getBlogsData(['1', '2', '3', '4']);

  // Remap the data structure
  const allBlogs = allBlogsData.map(blog => blog.value[0]);//also i think i am seeing 2 array there so it might be blog.value[0][0]

Json相关问答推荐

如何使用Laravel在MariaDB JSON kolumn中使用unicode字符

我如何知道TJSONNumber是double还是double?

在MongoDB中检索某个月份和年份的JSON文档

在Vega中如何通过滑块改变条形图的宽度

使用 jq 重新格式化 JSON 输出

使用不同行数的数据创建嵌套Jolt

Jolt 变换 - 如何用字段值重命名字段?

无法在Kotlin 中解析JSONObject

Powershell中等效的JSONPath通配符以 Select 对象中的所有数组

如果 JSON 对象包含列表中的子字符串,则丢弃它们

Swift - 将图像从 URL 写入本地文件

Swift:如何从字典中删除空值?

Python Flask-Restful POST 不采用 JSON 参数

Rails 中奇怪的 JSON Javascript 问题

在 Postgres 中向 JSON 对象添加元素

在 JSON 对象中强制执行非空字段

在 Qt 4.7 中解析 JSON 的最简单方法

Java循环遍历Json数组?

如何使用 Json.NET 反序列化可以是两种不同数据类型的 JSON 属性

log4j 支持 JSON 格式吗?