【发布时间】:2017-05-10 23:17:00
【问题描述】:
我在 json 中有这些数据,我想加载它并在 localStorage 中使用它。
[
{
"name": "Dexter",
"year": "2006",
"rating": "88%",
"from": "USA",
"kind": "crime / drama / thriller",
"length": "96x55 min",
"characters": [
{
"name": "Dexter Morgan",
"actor": "Michael C. Hall"
},
{
"name": "Debra Morgan",
"actor": "Jennifer Carpenter"
},
{
"name": "Angel Batista",
"actor": "David Zayas"
},
{
"name": "Hannah McKay",
"actor": "Yvonne Strahovski"
},
{
"name": "Joey Quinn",
"actor": "Desmond Harrington"
}
]
}, ... (+other tv series)]
这是我加载数据并将其获取到 var jsonObj 的代码,我用它来将其加载到 localStorage。
函数加载数据(){
$.getJSON("data.json",function(data){
$.each(data, function(key, val){
var charactersArray = [];
$.each(data.characters, function(key, val){
charactersArray += {
name: val.name,
actor: val.actor
};
});
var jsonObj = {
name: val.name,
year: val.year,
rating: val.rating,
from: val.from,
kind: val.kind,
length: val.length,
characters: charactersArray
};....
这里唯一不起作用的是迭代以获取字符数组的值。它是空的,结果中只包含 []。有人可以帮我解决这个问题以获取相同的数据到 var jsonObj 吗?非常感谢。
【问题讨论】:
-
charactersArray.push({ name: val.name, actor: val.actor }); -
你为什么使用 += ?
-
你为什么不直接做
var charactersArray = val.characters?你似乎没有在内部each循环中做任何特别的事情,这似乎是多余的 -
还要注意没有
data.characters,因为data是一个对象数组,每个对象都包含characters -
谢谢,它有帮助:-)