将JSON对象字符串数组转换为JS对象数组

我想将一个JSON String数组转换为JSON对象数组,而不循环遍历每个项目并使用JSON.parse解析它。

例:

var s=[ '{"Select":"11", "PhotoCount":"12"}', '{"Select":"21", "PhotoCount":"22"}', '{"Select":"31", "PhotoCount":"32"}']; 

如果你有一个JSON对象的JS数组:

 var s=['{"Select":"11","PhotoCount":"12"}','{"Select":"21","PhotoCount":"22"}']; 

你想要一个对象数组:

 // JavaScript array of JavaScript objects var objs = s.map(JSON.parse); // ...or for older browsers var objs=[]; for (var i=s.length;i--;) objs[i]=JSON.parse(s[i]); // ...or for maximum speed: var objs = JSON.parse('['+s.join(',')+']'); 

请参阅浏览器比较的速度测试 。


如果您有一个表示对象数组的JSON字符串:

 var s='[{"Select":"11","PhotoCount":"12"},{"Select":"21","PhotoCount":"22"}]'; 

你想要一个对象数组:

 // JavaScript array of JavaScript objects var objs = JSON.parse(s); 

如果您有一个对象数组:

 // A JavaScript array of JavaScript objects var s = [{"Select":"11", "PhotoCount":"12"},{"Select":"21", "PhotoCount":"22"}]; 

…并且你想要它的JSON表示,然后:

 // JSON string representing an array of objects var json = JSON.stringify(s); 

…或者如果你想要一个JSON字符串的JavaScript数组,那么:

 // JavaScript array of strings (that are each a JSON object) var jsons = s.map(JSON.stringify); // ...or for older browsers var jsons=[]; for (var i=s.length;i--;) jsons[i]=JSON.stringify(s[i]); 
 var json = jQuery.parseJSON(s); //If you have jQuery. 

由于注释看起来很混乱,请在引号内包含这些方括号后使用parse函数。

 var s=['{"Select":"11","PhotoCount":"12"}','{"Select":"21","PhotoCount":"22"}']; 

将上面的代码更改为

 var s='[{"Select":"11","PhotoCount":"12"},{"Select":"21","PhotoCount":"22"}]'; 

例如:

 $(document).ready(function() { var s= '[{"Select":"11","PhotoCount":"12"},{"Select":"21","PhotoCount":"22"}]'; s = jQuery.parseJSON(s); alert( s[0]["Select"] ); }); 

然后使用解析函数。 它肯定会奏效。

编辑:非常抱歉我给了错误的函数名称。 它是jQuery.parseJSON

jQuery的

json api

如果你真的有:

 var s = ['{"Select":"11", "PhotoCount":"12"}','{"Select":"21", "PhotoCount":"22"}']; 

那简单地说:

 var objs = $.map(s, $.parseJSON); 

这是一个演示。