【发布时间】:2015-04-29 12:39:08
【问题描述】:
我正在尝试从 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}]
然后我有以下代码来提取产品名称,但不断收到未定义的错误 - Uncaught TypeError: Cannot read property 'prodName' of undefined
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]
所以数据解析得很好,但现在我需要返回产品中的数据或将产品中的对象数据获取到单独的对象中。 有任何想法吗?谢谢
【问题讨论】:
-
你的 $.each(this, function(key, value) 没什么用,如果你只是想购买产品名
-
你不能改变服务器响应的格式吗?在 JSON 数据中包含 JSON 数据似乎有点奇怪。
-
您从哪个服务器端应用程序获得
json我的意思是您将从控制器操作或服务(API)获得 json?