好的,首先我是从这个格式的数据库中抓取json对象...
{
"position": "slider",
"size": "large",
"type": "slider",
"params":[{
"id": "10",
"title": "testfea",
"extension": "jpg",
"type": "image",
"path": "\/image\/1.jpg"
}]
}
我使用grep做了一些过滤......
// get all the large widgets
var largeWidgets = $.grep($widgetsData, function(e){
var farr = $.parseJSON(e.params);
return farr.size == 'large';
});
// get all the widgets where the position equals the live one
var filteredByPos = $.grep(largeWidgets, function(e){
var farr = $.parseJSON(e.params);
return farr.position == that.position;
});
我使用vue.js所以我将它分配给数据对象...
this.fullWidget = filteredByPos;
var json = fullWidget[0].params;
console.log(json.params[0]);
所以首先它记录了Object,但是当我尝试访问属性时它会给我这个错误:
未捕获的TypeError:无法读取属性' params'未定义的
在这个位置
var json = $.parseJSON(JSON.stringify(that.fullWidget[0].params));
特别是[index] .property
that.fullWidget[0].params
答案 0 :(得分:1)
要么因为fullWidget
不是数组(或空数组),要么是因为您使用的是fullWidget
而不是this.fullWidget
。
答案 1 :(得分:0)
因为fullWidget不是一个数组而只是一个对象。尝试使用fullWidget.params