如何将包含数组的JavaScript对象转换为JSON?

时间:2018-01-13 06:08:39

标签: javascript arrays json node.js

这个JavaScript对象包含一个我需要转换为JSON的数组(但是我无法更改对象,因为这是来自某些API的响应):

https://api.github.com/orgs/moment/members

简短示例(但请使用链接中的真实示例):

{
    [
        { login: 'abc', id: 1234567890},
        { login: 'xyz', id: 0987654321}
    ]
}
问题是当我尝试使用

JSON.stringify(response)

我收到错误:将循环结构转换为JSON

我也试过

JSON.stringify({'data': response});

2 个答案:

答案 0 :(得分:0)

响应的DATA是数组,而不是JSON.parse或JSON.stringify我决定创建一个新对象并过滤掉我不需要的东西。

    const axios = require("axios");
    const url = "https://api.github.com/orgs/moment/members";
    axios.get(url).then(members => {
        let data = [];
        for (var i = 0; i < response.data.length; i++) {
            let member = {};
            member['login'] = response.data[i].login;
            member['avatar_url'] = response.data[i].avatar_url;
            member['html_url'] = response.data[i].html_url;
            data.push(member);
        }
    }

答案 1 :(得分:-1)

你对象没有键试试这个

{
 "myNewKey" : [
                 { login: 'abc', id: 1234567890},
                 { login: 'xyz', id: 0987654321}
              ]
}

或者你可以试试这个

[
   { login: 'abc', id: 1234567890},
   { login: 'xyz', id: 0987654321}
]