Javascript 如何将json转换为java脚本数组?

Javascript 如何将json转换为java脚本数组?,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有json字符串,比如 string js=[{"Name":"Pini","ID":"111"}, {"Name":"Yaniv","ID":"123"}, {"Name":"Yoni","ID":"145"}] 我需要使用java脚本将其转换为如下格式 [['Pini',111],['Yaniv',123],['Yoni',145]] 如何使用javascript函数将json字符串转换为javascript数组?您可以这样做 你可以这样做 我是这样想的: var ret = []

我有json字符串,比如

string js=[{"Name":"Pini","ID":"111"},

{"Name":"Yaniv","ID":"123"},

{"Name":"Yoni","ID":"145"}]
我需要使用java脚本将其转换为如下格式

[['Pini',111],['Yaniv',123],['Yoni',145]]
如何使用javascript函数将json字符串转换为javascript数组?

您可以这样做

你可以这样做


我是这样想的:

var ret = [];

for (var i = 0; i < js.length; i++) {
    ret.push([js[i].Name, js[i].ID]);
}

// ret holds your array of arrays

两者都有一个例子:

我想是这样的:

var ret = [];

for (var i = 0; i < js.length; i++) {
    ret.push([js[i].Name, js[i].ID]);
}

// ret holds your array of arrays

两者的一个例子:

对于这种转换,我总是喜欢使用,这是一个用于Javascript的实用程序带库(主要用于对象/数组转换)。我认为它提供了非常好的功能,使生活变得更加简单,允许javascript开发人员提高工作效率,并为生成的代码实现更好的易读性

以下是带下划线(扩展)的解决方案:

这样你就达到了预期的效果:

[['Pini',111],['Yaniv',123],['Yoni',145]]
一行解决方案带下划线:

var result = _.zip(_.pluck(js, 'Name'), _.pluck(js, 'ID'))

希望有帮助

对于这种转换,我总是喜欢使用,这是一个用于Javascript的实用程序库(主要用于对象/数组转换)。我认为它提供了非常好的功能,使生活变得更加简单,允许javascript开发人员提高工作效率,并为生成的代码实现更好的易读性

以下是带下划线(扩展)的解决方案:

这样你就达到了预期的效果:

[['Pini',111],['Yaniv',123],['Yoni',145]]
一行解决方案带下划线:

var result = _.zip(_.pluck(js, 'Name'), _.pluck(js, 'ID'))

希望有帮助

我纠正了我的解决方案,我没有很好地阅读规范(我的错):


此解决方案使用jQuery。

我更正了我的解决方案,我没有很好地阅读规范(我的错误):


这个解决方案使用jQuery。

这里有一个解决方案可以用于简单对象(虽然不是深度对象……但我将留给您实现)

编辑

下面是一个使用
Array.prototype.map
的版本:


这里有一个解决方案,它适用于一个简单的对象(虽然不是深度对象…,但我将把它留给您来实现)

编辑

下面是一个使用
Array.prototype.map
的版本:


既然您使用的是jquery,那么您应该试试$.parseJSON(),为什么会有否决票?jquery是这个问题的标签之一:/我也被否决了,因为我提出的解决方案没有任何解释。其他用户也被否决。这是不公平的。既然您使用的是jquery,您应该试试$.parseJSON(),为什么会有否决票?jquery是这个问题的标签之一:/我也被否决了,因为我提出的解决方案没有任何解释。其他用户也被否决。这不公平。我不明白为什么有人在这里否决了我的答案。这是一个正确的答案(任何人都可以在控制台中进行测试),我使用了一个著名的javascript库,它解决了用户提出的问题,显示了研究成果。在这种情况下投否决票是完全不公平的。我不明白为什么有人在这里否决了我的答案。这是一个正确的答案(任何人都可以在控制台中进行测试),我使用了一个著名的javascript库,它解决了用户提出的问题,显示了研究成果。在这种情况下投否决票是完全不公平的。为什么投否决票?。。。我给OP提供了问题的两个复制粘贴解决方案=0\n我也被否决了,没有解释!顺便说一句,所有的解决方案都很好。为什么投反对票?。。。我给OP提供了问题的两个复制粘贴解决方案=0\n我也被否决了,没有解释!顺便说一句,所有的解决方案都很好。有些人喜欢投否决票,不做解释或讨论。如果一个解决方案似乎不合适,也许留下评论会更专业一些。有人喜欢投否决票,不做解释或讨论。如果一个解决方案似乎不合适,也许留下评论会更专业一些。
var jsonArray = [{"Name":"Pini","ID":"111"}, {"Name":"Yaniv","ID":"123"}, {"Name":"Yoni","ID":"145"}];

var jsonConverted = {};
$(jsonArray).each( function() {
    jsonConverted.push([ this.Name, this.ID ]);
});
var js = [{
    "Name": "Pini",
    "ID": "111"},
{
    "Name": "Yaniv",
    "ID": "123"},
{
    "Name": "Yoni",
    "ID": "145"}]

function obj2arr(obj) {
    var i, key, length = obj.length,
        aOutput = [],
        aObjValues;
    for (i = length - 1; i >= 0; i--) {
        aObjValues = [];
        for (key in obj[i]) {
            if (obj[i].hasOwnProperty(key)) {
                aObjValues.push(obj[i][key]);
            }
        }
        aOutput.push(aObjValues);
    }
    return aOutput;
}

document.write(JSON.stringify(obj2arr(js)))​
function obj2arr(obj) {
    var key, aOutput = [];
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            aOutput.push(obj[key]);
        }
    }
    return aOutput;
}

document.write(JSON.stringify(js.map(obj2arr)))​