json - 如何映射使用 JS fetch API 和 SWR 收集的嵌套 JSON 属性
问题描述
我有以下由瑞士政府永久提供的 JSON API。
https://www.bfs.admin.ch/bfsstatic/dam/assets/14856203/master
我试图列出一些没有出现在第一级的内容——在我的例子jaStimmenInProzent
中,每张投票的一些投票统计信息()(vorlagenId
):
我正在使用fetch API和Vercel SWR。不幸的是,我找不到映射的内容没有出现在第一级的教程/示例。任何想法如何继续并vorlagen
列出阵列?我尝试了以下但没有成功(请参阅沙箱):
import useSWR from "swr";
import "./styles.css";
const fetcher = (...args) => fetch(...args).then((response) => response.json());
export default function App() {
const { data, error } = useSWR(
"https://app-prod-static-voteinfo.s3.eu-central-1.amazonaws.com/v1/ogd/sd-t-17-02-20201129-eidgAbstimmung.json",
fetcher
);
if (error) return <h1>this is an error: {error}</h1>;
return (
<div className="App">
{data ? (
data.map((vorlagen) => <h1>{vorlagenId}</h1>)
) : (
<h1>loading...</h1>
)}
</div>
);
}
解决方案
您的数据包含schweiz
属性,其中包括vorlgen
作为数组的属性。您将无法直接在data
.
您必须映射data.schweiz.vorlagen
最终将允许您访问所需的子属性。
{data ? (
data.schweiz.volragen.map((vorlagen) => (
<div>
<h1>{vorlgen.vorlagenId}</h1>
<h4>{volragen.resultat.jaStimmenInProzent}</h4>
</div>
))
) : (
<h1>loading...</h1>
)}
推荐阅读
- c++ - 嵌入式节点执行 .node 文件
- azure - Azure B2C 调用 azure 函数,并将 JWT 令牌或代码保留为策略密钥
- apache-spark - 两列之间的部分匹配
- jaxb - Jaxb 解组卡住的线程 XMLDocumentScannerImpl$PrologDriver.next
- batch-file - 删除第一行中最后一次出现所选字符后的所有内容
- asp.net - Cookies 的 SameSite=None 设置丢失
- python - 在 python Tkinter 中发送电子邮件时能够更改地址
- javascript - JS - 在继续下一部分之前未能正确解决一系列承诺
- excel - 如何在 v 查找中使用变量而不是硬编码
- python - Pandas - 基于多个匹配列值更新/合并 2 个数据框