我正在尝试从JSON数组中的JSON数组获取数据,但收效甚微。
因此,我们的服务器在名为“ msg”的变量中返回了一个JSON数组,当我进行console.log记录时,它看起来像这样
[{"product":"[{\"imgUrl\":\"/p/332401\",\"prodCartQty\":2,\"prodName\":\"Test Product 1",\"productCode\":\"332401\"},{\"imgUrl\":\"/p/332388\",\"prodCartQty\":2,\"prodName\":\"Test Product 2",\"productCode\":\"332388\"}]","category":"gross_MAX_1","totalCategory":1},{"product":"[{\"imgUrl\":\"/p/332401\",\"prodCartQty\":2,\"prodName\":\"Test Product 1",\"productCode\":\"332401\"},{\"imgUrl\":\"/p/332388\",\"prodCartQty\":2,\"prodName\":\"Test Product 2",\"productCode\":\"332388\"}]","category":"gross_MAX_1","totalCategory":1}]
然后,我使用以下代码提取产品名称,但始终收到未定义的错误-未捕获的TypeError:无法读取未定义的属性'prodName'
console.log(msg);
var data = $.parseJSON(msg);
console.log(data);
OBJ = {};
OBJ.apply = function(data) {
$.each(data, function() {
$.each(this, function(key, value) {
console.log(value.product.prodName);
});
});
};
OBJ.apply(data);
任何想法,我要去哪里错了?
谢谢
编辑
我查看了解析的变量,然后得到:
[Object, Object]
0: Object
category: "restrictedItems_ie-standard-gross_MAX_1"
product: "[{"imgUrl":"/p/332401","prodCartQty":2,"prodName":"Test Product 1","productCode":"332401"},{"imgUrl":"/p/332388","prodCartQty":2,"prodName":"Test Product 2","productCode":"332388"}]"
totalCategory: 1
__proto__: Object
1: Object
category: "restrictedItems_ie-standard-gross_MAX_1"
product: "[{"imgUrl":"/p/332401","prodCartQty":2,"prodName":"Test Product 1","productCode":"332401"},{"imgUrl":"/p/332388","prodCartQty":2,"prodName":"Test Product 2","productCode":"332388"}]"
totalCategory: 1
__proto__: Object
length: 2
__proto__: Array[0]
因此,数据可以很好地解析,但是现在我需要返回产品中的数据或将产品中的对象数据放入单独的对象中。有任何想法吗?谢谢
尝试这个。我必须通过转义每个结尾的引号来修复无效的JSON
\"Test Product 1" <<<<
\"Test Product 2" <<<<
var data = [
{
"product": "[{\"imgUrl\":\"/p/332401\",\"prodCartQty\":2,\"prodName\":\"Test Product 1\",\"productCode\":\"332401\"},{\"imgUrl\":\"/p/332388\",\"prodCartQty\":2,\"prodName\":\"Test Product 2\",\"productCode\":\"332388\"}]",
"category": "gross_MAX_1",
"totalCategory": 1
},
{
"product": "[{\"imgUrl\":\"/p/332401\",\"prodCartQty\":2,\"prodName\":\"Test Product 1\",\"productCode\":\"332401\"},{\"imgUrl\":\"/p/332388\",\"prodCartQty\":2,\"prodName\":\"Test Product 2\",\"productCode\":\"332388\"}]",
"category": "gross_MAX_1",
"totalCategory": 1
}
]
$.each(data,function(_,productArr) {
var arr = JSON.parse(productArr.product.replace(/\//g,""));
$.each(arr,function(_,productDetails) {
// here is a product detail object
$.each(productDetails,function(name,value) {
console.log(name,value);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句