javascript - 帮助在 javascript 中访问 json 文件中的节点

标签 javascript jquery json jsonp

我需要你关于 json 结构的帮助!! (我知道这很简单,但我不知道错误是什么)。

在此代码中,我有一个 json 文件,其中包含项目列表(例如餐馆)以及每个分支机构的一些详细信息,例如地址。在我的 js 文件中,我尝试打印与特定项目 ID 匹配的所有地址。

我将发布 json 文件的示例以及访问它的 js 代码。

这是 json 文件:

{
"items" : 
[

{
"item_id" :"204","details" :[{"country":"usa","city":"NY", "address":"bla bla bla"},{"country":"usa","city":"NY", "address":"another bla bla bla for the same id"}]
},
{
"item_id" :"234","details" :[{"country":"usa","city":"NY", "address":"another bla bla bla"}]
}

]
}

这是访问该文件的 js 代码:

.....
success:function(data){
        $.each(data.items, function(i,item){
                if (item.item_id == 204 ) {
            $("#results").append("<hr/>");
                $("#results").append("<span class='result' >" + item.details.address + "</span><br/>");
    }
      });
    }, ....

但它不打印任何东西。

你觉得怎么样?

最佳答案

在这种情况下,您实际上不需要使用 $.each,因为您有一个对象数组,即 [{}, {}, {}] 是一个对象数组,甚至尽管你实际上有一个对象数组的对象:p。每个对象都有一个指定的索引,即“item”,而每个对象数组都有一个默认索引 0、1、2 等。

也是的,因为您有一个地址对象详细信息数组,所以您需要通过 details[0]details[1] 访问它们

检查这个example out on jsFiddle

for(var i =0;i<data.items.length;i++) {

if (data.items[i].item_id == "204" ) {
            $("#results").append("<hr/>");
                $("#results").append("<span class='result' >" + data.items[i].details[0].address + "</span><br/>");
    }
}

关于javascript - 帮助在 javascript 中访问 json 文件中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967170/

相关文章:

java - 使用 Jackson 将字符串转换为对象

Javascript 嵌套函数不起作用

javascript - Backbone : Call an extended view's overridden render() function

javascript - 谷歌地图 v3 api map 没有完全加载

javascript - 删除序列中jquery创建的元素

ios - Alamofire responseJSON 无法将 NSDictionary 类型的值转换为自定义对象

java - Android:JSON 解析错误没有出现

javascript - D3.JS SVG 圆圈中的数据驱动颜色

javascript - 裁剪缩小图像

javascript - 按下回车键不会在 Mozilla 中打开下拉菜单