如何从数组JSON中提取值?

时间:2019-11-07 10:04:32

标签: javascript arrays json

我有这个JSON:

[[{"product_name":"prod-1","product_url":"http:\\www.google.com"}]]

CODE JS:

 var giftLabel = window.checkout.giftLabel; // return json

 var array = JSON.parse("[" + giftLabel + "]"); // transform in a array

 for(var i = 0; i < array.length; i++) {
        for(var j = 0; j < array[i].length; j++) {
            var parse = JSON.parse(array[i][j]);   //this line not working
            console.log(parse.product_name);       //this line not working
        }
    }

我想从此JSON中提取值并选择一个示例

输出:

prod-1
http:\\www.google.com

您能告诉我哪里错了,为什么我不能正确地从JSON中提取值?

3 个答案:

答案 0 :(得分:0)

似乎您的[[{"product_name":"prod-1","product_url":"http:\\www.google.com"}]]已经在JS对象中。因此您随时可以通过

进行访问
var x = [[{"product_name":"prod-1","product_url":"http:\\www.google.com"}]];

console.log(x[0][0].product_name);

或者,如果您的值是JSON文本,请先对其进行解析:

var x = JSON.parse("you json text");

然后继续上面的示例。

这是循环中的工作

var x = JSON.parse("json  text");

x.forEach(function(i){
    i.forEach(function(ii)){
          console.log(ii.product_name);
    }

});

答案 1 :(得分:0)

var parse = array[i][j];
output = Object.values(parse)

output = ['prod-1','http:\ www.google.com']

Object.values将返回传递的对象内所有值的数组

答案 2 :(得分:0)

        Call:remove_all(2, [1, 4, 2, 3, 5, 2, 7, 2], _4896)
            Call:remove_all(2, [4, 2, 3, 5, 2, 7, 2], _5128)
                Call:remove_all(2, [2, 3, 5, 2, 7, 2], _5146)
                    Call:remove_all(2, [3, 5, 2, 7, 2], _5146)
                        Call:remove_all(2, [5, 2, 7, 2], _5164)
                            Call:remove_all(2, [2, 7, 2], _5182)
                                Call:remove_all(2, [7, 2], _5182)
                                    Call:remove_all(2, [2], _5200)
                                        Call:remove_all(2, [], _5200)
                                        Exit:remove_all(2, [], [])
                                    Exit:remove_all(2, [2], [])
                                Exit:remove_all(2, [7, 2], [7])
                            Exit:remove_all(2, [2, 7, 2], [7])
                        Exit:remove_all(2, [5, 2, 7, 2], [5, 7])
                    Exit:remove_all(2, [3, 5, 2, 7, 2], [3, 5, 7])
                Exit:remove_all(2, [2, 3, 5, 2, 7, 2], [3, 5, 7])
            Exit:remove_all(2, [4, 2, 3, 5, 2, 7, 2], [4, 3, 5, 7])
        Exit:remove_all(2, [1, 4, 2, 3, 5, 2, 7, 2], [1, 4, 3, 5, 7])