Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery动态访问json中的值_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何使用jquery动态访问json中的值

Javascript 如何使用jquery动态访问json中的值,javascript,jquery,json,Javascript,Jquery,Json,是的,有许多线程质疑与以下类似的问题,但我发现关于动态键和从每个键都有多个值的JSON中提取单个值的帮助非常少 我有一个json,其中的键是动态的,我需要能够调用每个单独的值 有什么想法吗 json示例如下: {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},

是的,有许多线程质疑与以下类似的问题,但我发现关于动态键和从每个键都有多个值的JSON中提取单个值的帮助非常少

我有一个json,其中的键是动态的,我需要能够调用每个单独的值

有什么想法吗

json示例如下:

{"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}}
我已经使用了以下代码,但目前只输出了一系列值,而不是单个值:

        $.each(data, function (key1, value1) {
            $.each(value1, function (key, value) {
                $('body').append('<li id="' + key + '">' + key1 +' ' + key +' ' + value + '</li>');
            });
        });
解决方法如下:

        json = JSON.parse(data);
        for (var index in json) {
            $.each(json[index], function(key,value) {
                for(var i = 0; i< json[index][key].length; i++){
                    $('body').append('<li>' + index +' ' + key +' ' + json[index][key][i] + '</li>');
                }
            });
        }

JSON返回JavaScript中的对象。所以你可以这样做:

var json = {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}};

for (var i=0; i<json.AppliedPrepaidBundle.id.length; i++) {
    console.log("id"+i+": "+json.AppliedPrepaidBundle.id[i]);
}

这将打印出ID对象的所有值:14、15、24、25等

var json = {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}};

for (var i=0; i<json.AppliedPrepaidBundle.id.length; i++) {
   $('body').append("<li>AppliedPrepaidBundle id"+i+": "+json.AppliedPrepaidBundle.id[i]+'</li>');
}
for (var i=0; i<json.AppliedPrepaidBundle.prepaid_bundle_id.length; i++) {
    $('body').append("<li>PrepaidBundleid"+i+":"+json.AppliedPrepaidBundle.prepaid_bundle_id[i]+'</li>');
}
for (var i=0; i<json.Device.id.length; i++) {
    $('body').append("<li>Device id"+i+": "+json.Device.id[i]+'</li>');

}
使用JSON.parse创建一个对象。看见然后在对象{…}中循环使用for x的属性


您可以使用javascript的基本功能:

等等


当您的应用程序适合javascript时,您还可以使用递归来避免重复

编辑的问题包含了一些尝试过的代码,只是在拉取单个值时有点卡住了。您正在创建这些JSON对象吗?如果是,则使用匿名JSON对象数组使其可迭代,我可以完全控制JSON的创建可能重复的是,关于解析JSON的问题很多,关于动态键的问题很少,每个键有多个值。这里的问题是使其动态。生成的json取决于用户选择的选项,因此密钥可以更改。@xtremetom然后找出密钥是什么如果有多个密钥怎么办?如果没有呢?并使用方括号表示法作为json[key][i],并利用Jancareal with property的注释对上述内容进行了改编。可能需要使用.HasOwnProperty筛选出系统属性
var jsonObject = JSON.parse('your JSON-String');
for (property in jsonObject) {
    // do something with jsonObject[property]
    console.log(property + ' ' + jsonObject[property]);
}
var data = {"AppliedPrepaidBundle":{"id":["14","15","24","25","26","27","28","29","30","31"],"prepaid_bundle_id":["5","5","5","5","5","5","5","5","5","5"]},"Device":{"id":["77","77","91","91","117","117","117","117","117","124"]}};
for (var dataIndex in data) {
     console.log(dataIndex, data[dataIndex]);
     var subData = data[dataIndex];
     for (var subDataIndex in subData) {
         console.log(subDataIndex, subData[subDataIndex]);
     }
}