使用JavaScript/jQuery显示未标记字段中的JSON数据

使用JavaScript/jQuery显示未标记字段中的JSON数据,javascript,jquery,json,Javascript,Jquery,Json,所以,我对从API获取数据和格式化json非常陌生,我已经取得了一些很大的进展,但遇到了一个障碍 我能够从API获取数据 我可以等待通过回调处理数据 我可以选择数据的嵌套部分 我能够显示数据 我陷入困境的地方:也许我向谷歌问了一个错误的问题,但我似乎找不到任何允许我只返回第五项“NY”的东西 当我显示short\u name中的项目时,我得到了所有信息: 11776 杰斐逊港站 布鲁克黑文 萨福克县 纽约 美国 没有章节名称,我怎么能只显示第5项? -纽约 var_state={ “结

所以,我对从API获取数据和格式化json非常陌生,我已经取得了一些很大的进展,但遇到了一个障碍

  • 我能够从API获取数据
  • 我可以等待通过回调处理数据
  • 我可以选择数据的嵌套部分
  • 我能够显示数据
我陷入困境的地方:也许我向谷歌问了一个错误的问题,但我似乎找不到任何允许我只返回第五项“NY”的东西

当我显示
short\u name
中的项目时,我得到了所有信息:

  • 11776
  • 杰斐逊港站
  • 布鲁克黑文
  • 萨福克县
  • 纽约
  • 美国
没有章节名称,我怎么能只显示第5项? -纽约

var_state={
“结果”:[
{  
“地址/组件”:[
{  
“long_name”:“11776”,
“短名称”:“11776”,
“类型”:[
“邮政编码”
]
},
{  
“long_名称”:“杰斐逊港站”,
“短名称”:“杰斐逊港站”,
“类型”:[
“地点”,
“政治”
]
},
{  
“long_name”:“Brookhaven”,
“短名称”:“布鲁克黑文”,
“类型”:[
“行政区三级”,
“政治”
]
},
{  
“龙_名称”:“萨福克县”,
“简称”:“萨福克县”,
“类型”:[
“行政区二级”,
“政治”
]
},
{  
“long_name”:“纽约”,
“短名称”:“NY”,
“类型”:[
“行政区一级”,
“政治”
]
},
{  
“long_name”:“美国”,
“简称”:“美国”,
“类型”:[
“国家”,
“政治”
]
}
],
“地址”:“美国纽约州杰斐逊港站,NY 11776”,
“几何学”:{
“界限”:{
“东北”:{
“lat”:40.937698,
“液化天然气”:-73.008309
},
“西南”:{
“lat”:40.888503,
“液化天然气”:-73.0763651
}
},
“地点”:{
“lat”:40.908601399999,
“液化天然气”:-73.0464309
},
“位置类型”:“近似值”,
“视口”:{
“东北”:{
“lat”:40.937698,
“液化天然气”:-73.008309
},
“西南”:{
“lat”:40.888503,
“液化天然气”:-73.0763651
}
}
},
“地点id”:“ChIJJ9atd-BA6IkRfXg\U wE1Klkg”,
“邮政编码\地区”:[
“杰夫港”,
“杰斐逊港站”
],
“类型”:[
“邮政编码”
]
}
],
“状态”:“确定”
};
var state_output=$(“.current state”);
$(the_state.results).each(函数(k,results){
$(results.address\u components)。每个(函数(索引,address\u component){
state_output.append(“
  • ”+address_component.short_name+”
  • ”); }) })
    
    
    $(状态.results)。每个(函数(k,results){
    $(results.address\u components)。每个(函数(索引,address\u component){
    如果(索引==4){
    state_output.append(“
  • ”+address_component.short_name+”
  • ”); } }) })
    只需检查索引,看看它是否是数组中的第5个元素。:)希望能有帮助。代码未测试。

    <代码>$(状态.results)。每个(函数(k,results){ $(results.address\u components)。每个(函数(索引,address\u component){ 如果(索引==4){ state_output.append(“
  • ”+address_component.short_name+”
  • ”); } }) })

    只需检查索引,看看它是否是数组中的第5个元素。:)希望能有帮助。代码未经测试。

    我怀疑您是否应该依赖地址组件的特定顺序,您应该查找
    管理区域级别1
    类型

    此外,还应使用
    $.each()
    在数组上循环<代码>$(变量)。each()
    用于在jQuery集合上循环

    var\u状态={
    “结果”:[{
    “地址组件”:[{
    “long_name”:“11776”,
    “短名称”:“11776”,
    “类型”:[
    “邮政编码”
    ]
    },
    {
    “long_名称”:“杰斐逊港站”,
    “短名称”:“杰斐逊港站”,
    “类型”:[
    “地点”,
    “政治”
    ]
    },
    {
    “long_name”:“Brookhaven”,
    “短名称”:“布鲁克黑文”,
    “类型”:[
    “行政区三级”,
    “政治”
    ]
    },
    {
    “龙_名称”:“萨福克县”,
    “简称”:“萨福克县”,
    “类型”:[
    “行政区二级”,
    “政治”
    ]
    },
    {
    “long_name”:“纽约”,
    “短名称”:“NY”,
    “类型”:[
    “行政区一级”,
    “政治”
    ]
    },
    {
    “long_name”:“美国”,
    “简称”:“美国”,
    “类型”:[
    “国家”,
    “政治”
    ]
    }
    ],
    “地址”:“美国纽约州杰斐逊港站,NY 11776”,
    “几何学”:{
    “界限”:{
    “东北”:{
    “lat”:40.937698,
    “液化天然气”:-73.008309
    },
    “西南”:{
    “lat”:40.888503,
    “液化天然气”
    
    $(the_state.results).each(function(k, results){    
      $(results.address_components).each(function(index, address_component) {
       if(index === 4) {
          state_output.append("<li>" + address_component.short_name + "</li>");
       }
      })
    })
    
        var the_state = {
                      "long_name":"New York",
                      "short_name":"NY",
        }; 
    
    var parsedJSON = JSON.parse(the_state);
    document.write(parsedJSON .long_name + ' ' + parsedJSON .short_name);