无法从 sveltekit 循环中的 JSON 对象获取值

Posted

技术标签:

【中文标题】无法从 sveltekit 循环中的 JSON 对象获取值【英文标题】:Cannot get value form JSON object in a sveltekit loop 【发布时间】:2021-10-26 16:01:19 【问题描述】:

我正在使用 SvelteKit 来拉取一个 Prismic 对象。如果我查询单个文档,我可以很好地呈现数据。但是,如果我查询所有内容并尝试在循环中逐项列出,则无法从对象中提取文本值。

把对象串起来,就可以看到我想要的数据了:

<pre> JSON.stringify(results, null, 2) </pre> 

允许我查看数据

[
  
    "type": "accounts",
    "data": 
      "created_at": "2021-08-25T05:00:00+0000",
      "name": [
        
          "type": "heading2",
          "text": "John",
          "spans": []
        
      ],
      "last_name": [
        
          "type": "heading2",
          "text": "Doe",
          "spans": []
        
      ],
    
  ,
  
    "type": "accounts",
    "data": 
      "created_at": "2021-08-25T05:00:00+0000",
      "name": [
        
          "type": "heading2",
          "text": "Jane",
          "spans": []
        
      ],
      "last_name": [
        
          "type": "heading2",
          "text": "Rey",
          "spans": []
        
      ],
    
  ,
]

我正在尝试从循环中获取 last_name,即 Doe 和 Rey

#each results as account   
  <li> account.data.last_name </li>    
/each

发回一个对象。和

#each results as account
  <li> account.data.last_name.text </li>
/each

抛出一个未定义的错误。我知道它与括号中的名称和姓氏有关。我只是不知道如何在循环中提取它们。

我试过了:

account.data.last_name[0]
account.data.last_name["text]
account.data.last_name[0].text

还有 20 次以上的迭代。我觉得我在这里遗漏了一些非常明显的东西。

【问题讨论】:

【参考方案1】:

只是在 Prismic 论坛上交叉发布我的回复 :)

https://community.prismic.io/t/cannot-get-value-form-json-object-in-a-sveltekit-loop/6765/3?u=samlittlefair

【讨论】:

在那个论坛上添加了我的回复。如果我们得到答案,我会更新 SO,以便遇到相同问题的任何人都知道解决方案。 Sam 在 Prismic 社区正确回答了这个问题:community.prismic.io/t/…

以上是关于无法从 sveltekit 循环中的 JSON 对象获取值的主要内容,如果未能解决你的问题,请参考以下文章

在 svelte.config.js 中找不到 SvelteKit $app

SvelteKit s-s-r - 如何在获取数据之前阻止服务器端渲染?

getAuth() 在不同路径中的问题 - SvelteKit

我的 SvelteKit 项目中的“无服务器功能”经常出现错误

PouchDB 和 SvelteKit

SvelteKit 并在服务器端渲染中缓存组件输出