我正在尝试将type
内的url
和media2
值从此json数组映射到angularjs scope Array
"results":[
{
"session2":[
{
"__type":"Object",
"about":"about here",
"attendant2":{
"__type":"Relation",
"className":"_User"
},
"className":"sessionClass",
"createdAt":"2015-09-16T06:12:54.461Z",
"media2":[
{
"__type":"Object",
"priority":1,
"type":3,
"updatedAt":"2015-09-16T06:12:54.153Z",
"url":"https://example.com"
}
],
"updatedAt":"2015-09-16T06:12:54.461Z"
}
],
"updatedAt":"2015-10-16T06:08:57.726Z"
}
]
我已尝试使用此
$scope.mediaType = results['object'].map(function(item) {
return item.get('session2')[0].get('media2')[0].get('type');
});
和这个
$scope.mediaType = results['session2'].map(function(item) {
return item.get('media2')[0].get('type');
});
但它总是给我TypeError: results.object is undefined
或TypeError: results.session2 is undefined
我如何从那个json获得价值?
答案 0 :(得分:1)
结果是一个数组而不是对象,您可以使用results[0].session2.map
答案 1 :(得分:1)
试试这个
var x = {
"results": [{
"session2": [{
"__type": "Object",
"about": "about here",
"attendant2": {
"__type": "Relation",
"className": "_User"
},
"className": "sessionClass",
"createdAt": "2015-09-16T06:12:54.461Z",
"media2": [{
"__type": "Object",
"priority": 1,
"type": 3,
"updatedAt": "2015-09-16T06:12:54.153Z",
"url": "https://www.youtube .com/watch?v=cVjT1QGilAg"
}],
"updatedAt": "2015-09-16T06:12:54.461Z"
}],
"updatedAt": "2015-10-16T06:08:57.726Z"
}]
}
var y = x.results.map(function(v) {
return {
type: v.session2[0].__type,
url: v.session2[0].media2[0].url
}
})
document.write(JSON.stringify(y))

答案 2 :(得分:0)
我在另一个问题的答案中使用这种方式
$scope.mediaType = [];
var media2 = results.get('session2')[0].get('media2');
for (i = 0; i < media2.length; i++) {
$scope.mediaType.push({
type: session[i].get('type'),
url: session[i].get('url'),
});
};