Javascript 如何从JSON数组中提取值?
我有一个JSON:Javascript 如何从JSON数组中提取值?,javascript,arrays,json,Javascript,Arrays,Json,我有一个JSON: [[{"product_name":"prod-1","product_url":"http:\\www.google.com"}]] 代码JS: var giftLabel = window.checkout.giftLabel; // return json var array = JSON.parse("[" + giftLabel + "]"); // transform in a array for(var i = 0; i < array.len
[[{"product_name":"prod-1","product_url":"http:\\www.google.com"}]]
代码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
}
}
prod-1
http:\\www.google.com
你能告诉我哪里错了,为什么我不能正确地从JSON中提取值吗?你的[[{“产品名称”:“prod-1”,“产品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);
}
});
输出=['prod-1','http:\ www.google.com']
Object.values将返回传递对象内所有值的数组
设d=[
[{
“产品名称”:“prod-1”,
“产品url”:“http:\\www.google.com”
}]
]
for(设i=0;i }
首先giftLabel
不是json字符串,而是一个数组。所以不需要像@prasanth说的那样解析,[[{“产品名称”:“prod-1”,“产品url”:“http:\\www.google.com”}]
是一个数组,而不是json
为什么要在一个已经有2个[]
包装的json字符串周围添加[]
?只要JSON.parse(giftLabel)
。从循环中删除JSON.parse
,看看这个,好的,非常感谢,但我不需要迭代结构,例如,如果我有一个JSON行,那么就没有数组[0][0],对吗?好的,明白了。将更新答案好的,我期待。。。我很好奇怎么做:)
var parse = array[i][j];
output = Object.values(parse)