首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象字符串到JSON(抛出错误)

对象字符串到JSON(抛出错误)
EN

Stack Overflow用户
提问于 2016-04-07 15:50:52
回答 1查看 73关注 0票数 0

在尝试将对象转换为JSON时,我面临着问题。我正在创建一个有角度的web应用程序。

下面是我转换为object的json:

代码语言:javascript
复制
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结构:

代码语言:javascript
复制
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(数组)。同样的错误也会出现。

EN

回答 1

Stack Overflow用户

发布于 2016-04-07 16:28:41

我试着在Firebug的控制台中按以下方式运行您的代码,它适用于我:

代码语言:javascript
复制
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));

作为控制台输出,我得到以下内容:

代码语言:javascript
复制
{"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":[]}]}]}]}

这就是你想做的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36481276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档