我有这样的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数组?
发布于 2012-11-02 14:39:48
我认为应该是这样的:
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 = $.map(js, function (el, i) {
return [[el.Name, el.ID]];
});两者都有的一个例子:http://jsfiddle.net/RNY8M/
发布于 2012-11-02 14:39:39
你可以这样做
var JSONObject = {"results":[{"Name":"Pini","ID":"111"},
{"Name":"Yaniv","ID":"123"},
{"Name":"Yoni","ID":"145"}]};
var Users= [];
$.each(JSONObject.results, function(i, obj)
{
alert(obj.Name);
alert(obj.ID);
Users.push([obj.Name, obj.ID]);
});发布于 2012-11-02 16:30:02
对于这种转换,我总是更喜欢使用,它是一个实用工具库(主要用于对象/数组转换)。我认为它提供了很好的功能,使生活更容易,允许javascript开发人员更有生产力的,并为结果代码实现更好的易读性。
下面是带下划线(扩展)的解决方案:
var js=[{"Name":"Pini","ID":"111"},
{"Name":"Yaniv","ID":"123"},
{"Name":"Yoni","ID":"145"}]
var names = _.pluck(js, 'Name');
var ids = _.pluck(js, 'ID');
var result = _.zip(names, ids)你就会得到你想要的结果:
[['Pini',111],['Yaniv',123],['Yoni',145]]带有下划线的单行解决方案:
var result = _.zip(_.pluck(js, 'Name'), _.pluck(js, 'ID'))希望它能帮上忙!
https://stackoverflow.com/questions/13190490
复制相似问题