【问题标题】:Accessing JSON objects in an array访问数组中的 JSON 对象
【发布时间】:2017-03-08 19:57:21
【问题描述】:

我正在尝试读取 JSON,根据某些属性对其进行过滤,然后将符合条件的对象添加到我可以在其他函数中使用的格式中。

这是到目前为止的样子:`

$.ajax({
            url: url,
            type: "GET",
            dataType: "json",
            headers: {"X-API-Key": "My_API_Key"}
        }).done(NJ_filter);

filtered_data = [];

function NJ_filter( data ) {
    $.each( data.results[0].members, function( i, item ) {
        if (data.results[0].members[i].state == "NJ") {
            filtered_data.push(data.results[0].members[i]);
        };
    });`

它似乎返回了一个由浮点数索引的对象数组。但是当我尝试通过console.log(filtered_data[0]) 访问任何对象时,我得到了一个未定义的结果。我很确定这与 JSON 和数组之间的连接有关,但我无法确定我做错了什么。有人对我如何更好地输入此 JSON 有指导吗?

【问题讨论】:

    标签: jquery arrays json


    【解决方案1】:

    您可能应该调用 JSON.parse() 来响应 AJAX,以便将其解析为 JS 对象。

    【讨论】:

    • 我收到这条消息:“Uncaught SyntaxError: Unexpected token o in JSON at position 1”
    • 您可以简单地调用console.log(),然后记录AJAX 的响应。能否请您提供此信息?
    • 我用function NJ_filter( data ) { parsed = JSON.parse(data); console.log(parsed) // JSON.parse(data); // console.log(data); $.each( data.results[0].members, function( i, item ) { if (data.results[0].members[i].state == "NJ") { NJ_congress.push(data.results[0].members[i]); // console.log(data.results[0].members[i]); }; });测试的
    • 抱歉格式化,但我的想法是我解析了 ajax 调用的结果并将它们放入一个名为 parsed 的变量中。
    • 这是前几行:{ "status":"OK", "copyright":" Copyright (c) 2017 Pro Publica Inc. All Rights Reserved.", "results":[ { “国会”:“114”,“会议厅”:“房子”,“num_results”:“448”,“偏移量”:“0”,“成员”:[{“id”:“A000055”,...。 ,"missed_votes_pct": "1.66", "votes_with_party_pct": "94.40" }, { "id": "A000367",
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多