gpt4 book ai didi

javascript - JSON 数组和 Javascript

转载 作者:行者123 更新时间:2023-11-30 17:28:14 25 4
gpt4 key购买 nike

我是 json 的新手。我创建了与附加的 json 字符串结构相似的对象。我相信我有意创建的是一个嵌套数组对象...

  {
"tracelog":{
"title":"",
"phase":"12",
"users":"",
"logduration":"",
"logdurationtype":"undefined",
"showlogduedate":"no",
"durationstartfield":"",
"fields":[
{
"atts":[
{
"name":"dfvdfv",
"fieldtype":"text",
"followedbydate":"no",
"datetype":"---",
"fieldduration":"---",
"fielddurationtype":"undefined",
"fielddurationstart":"",
"autocalcunits":"none",
"validationtype":"none",
"fieldvisibleto":"",
"fieldaccessibleto":"",
"dropdown":""
}
]
},
{
"atts":[
{
"name":"ffff",
"fieldtype":"text",
"followedbydate":"no",
"datetype":"---",
"fieldduration":"---",
"fielddurationtype":"undefined",
"fielddurationstart":"",
"autocalcunits":"none",
"validationtype":"none",
"fieldvisibleto":"",
"fieldaccessibleto":"",
"dropdown":""
}
]
}
]
}
}

我想要做的是找到名为“atts”的数组的长度。我按如下方式解析了 JSON 字符串......

var obj = jQuery.parseJSON(jsonstring);

...然后再这样称呼对象...

obj.tracelog.fields.length

准确地告诉我有多少字段。

obj.tracelog.fields[0].atts.name

... 给了我名字,但抛出一个控制台错误,说 field[0] 未定义。所以它有效,但它没有。而....

obj.tracelog.fields[0].atts.length

没有给我“atts”数组中字段的数量(如果它实际上是一个数组 - id 喜欢它)但给我“未定义”。

有人能指出我哪里出了问题吗?

谢谢。

最佳答案

obj.tracelog.fields[0].atts 是一个数组,因此您必须像这样访问它:

obj.tracelog.fields[0].atts[0].name

Working example

解决你问题的后半部分:

obj.tracelog.fields[0].atts.length does 为您提供数组中项目的数量,在您的示例中是一个对象。看起来您真正想要做的是计算该数组中第一个对象的属性数(即 obj.tracelog.fields[0].atts[0])。没有简单的 .length 样式属性可以为您提供对象的属性数量,但您可以遍历它们并像这样计数:

var count = 0;
for (var test in obj.tracelog.fields[0].atts[0]) {
count++;
}
alert(count);

关于javascript - JSON 数组和 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796667/

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