gpt4 book ai didi

JavaScript 和 json

转载 作者:行者123 更新时间:2023-12-02 20:36:07 27 4
gpt4 key购买 nike

我正在使用 javascript 和 json 库,但遇到了一些麻烦。这是我的 json 输出:

{
"artist": {
"username": "myname",
"password": "password",
"portfolioName": "My Portfolio",
"birthday": "2010-07-12 17:24:36.104 EDT",
"firstName": "John",
"lastName": "Smith",
"receiveJunkMail": true,
"portfolios": [{
"entry": [{
"string": "Photos",
"utils.Portfolio": {
"name": "Photos",
"pics": [""]
}
},
{
"string": "Paintings",
"utils.Portfolio": {
"name": "Paintings",
"pics": [""]
}
}]
}]
}
}

在 javascript 中,我尝试像这样访问 map 中的条目:

var portfolios = jsonObject.artist.portfolios.entry;
var portfolioCount = portfolios.length;

for ( var index = 0; index < portfolioCount; index++ )
{
var portfolio = portfolios[index];
txt=document.createTextNode("Portfolio Name: " + portfolio['string'] );
div = document.createElement("p");
div.appendChild ( txt );
console.appendChild(div);
}

但投资组合是“未定义的”。正确的做法是什么?

最佳答案

查看您的 JSON 结果。 portfolios 是一个单元素数组; portfolios[0] 是一个包含单个键 entry 的对象,它映射到同时具有 string 的两个对象的数组>utils.Portfolio 键。因此,语法 jsonObject.artist.portfolios.entry 将不起作用。相反,您需要 jsonObject.artist.portfolios[0].entry

如果可能,我建议更改生成这些 JSON 结果的任何代码,以完全删除entry 间接级别,例如像这样:

{
"artist": {
/* ... */
"portfolios": [
{
"string": "Photos",
"utils.Portfolio": {
"name": "Photos",
"pics": [""]
}
},
{
"string": "Paintings",
"utils.Portfolio": {
"name": "Paintings",
"pics": [""]
}
}
]
}
}

然后你可以使用它来访问它

var portfolios = jsonObject.artist.portfolios;
for (var i = 0, portfolio; portfolio = portfolios[i]; ++i)
{
// use portfolio variable here.
}

关于JavaScript 和 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232464/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com