在尝试将对象转换为JSON时,我面临着问题。我正在创建一个有角度的web应用程序。
下面是我转换为object的json:
var array = {
"game": [{
"Time (magazine)": [{
"AARP Bulletin": []
}, {
"AARP The Magazine": []
}]
}, {
"Ludwig Wittgenstein": [{
"Wittgenstein": []
}, {
"20th century philosophy": [{
"16th-century philosophy": [{
"19th-century philosophy": []
}]
}, {
"17th-century philosophy": []
}]
}]
}]
};并使用此方法转换为首选的json结构:
function restyle(obj) {
Object.keys(obj).forEach(function (k) {
obj.name = k;
obj.child = obj[k];
delete obj[k];
obj.child.forEach(restyle);
});
};但是,当我试图在传递restyle方法之后记录数组变量时。我收到错误了
TypeError:将循环结构转换为JSON
我尝试使用JSON.stringfy(数组)。同样的错误也会出现。
发布于 2016-04-07 16:28:41
我试着在Firebug的控制台中按以下方式运行您的代码,它适用于我:
function restyle(obj) {
Object.keys(obj).forEach(function (k) {
obj.name = k;
obj.child = obj[k];
delete obj[k];
obj.child.forEach(restyle);
});
};
var array = {
"game": [{
"Time (magazine)": [{
"AARP Bulletin": []
}, {
"AARP The Magazine": []
}]
}, {
"Ludwig Wittgenstein": [{
"Wittgenstein": []
}, {
"20th century philosophy": [{
"16th-century philosophy": [{
"19th-century philosophy": []
}]
}, {
"17th-century philosophy": []
}]
}]
}]
};
restyle(array);
console.log(JSON.stringify(array));作为控制台输出,我得到以下内容:
{"name":"game","child":[{"name":"Time (magazine)","child":[{"name":"AARP Bulletin","child":[]},{"name":"AARP The Magazine","child":[]}]},{"name":"Ludwig Wittgenstein","child":[{"name":"Wittgenstein","child":[]},{"name":"20th century philosophy","child":[{"name":"16th-century philosophy","child":[{"name":"19th-century philosophy","child":[]}]},{"name":"17th-century philosophy","child":[]}]}]}]}这就是你想做的吗?
https://stackoverflow.com/questions/36481276
复制相似问题