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

Ala*_*sta 15 javascript jquery json

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

例:

var s=[
  '{"Select":"11", "PhotoCount":"12"}',
  '{"Select":"21", "PhotoCount":"22"}',
  '{"Select":"31", "PhotoCount":"32"}'];
Run Code Online (Sandbox Code Playgroud)

Phr*_*ogz 47

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

var s=['{"Select":"11","PhotoCount":"12"}','{"Select":"21","PhotoCount":"22"}'];
Run Code Online (Sandbox Code Playgroud)

你想要一个对象数组:

// 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(',')+']');
Run Code Online (Sandbox Code Playgroud)

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


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

var s='[{"Select":"11","PhotoCount":"12"},{"Select":"21","PhotoCount":"22"}]';
Run Code Online (Sandbox Code Playgroud)

你想要一个对象数组:

// JavaScript array of JavaScript objects
var objs = JSON.parse(s);
Run Code Online (Sandbox Code Playgroud)

如果您有一个对象数组:

// A JavaScript array of JavaScript objects
var s = [{"Select":"11", "PhotoCount":"12"},{"Select":"21", "PhotoCount":"22"}];
Run Code Online (Sandbox Code Playgroud)

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

// JSON string representing an array of objects
var json = JSON.stringify(s);
Run Code Online (Sandbox Code Playgroud)

...或者如果你想要一个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]);
Run Code Online (Sandbox Code Playgroud)

  • 或者`var objs = s.map(JSON.parse);`作为你的第一个例子. (2认同)

KBN*_*KBN 6

var json = jQuery.parseJSON(s); //If you have jQuery.
Run Code Online (Sandbox Code Playgroud)

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

var s=['{"Select":"11","PhotoCount":"12"}','{"Select":"21","PhotoCount":"22"}'];
Run Code Online (Sandbox Code Playgroud)

将上面的代码更改为

var s='[{"Select":"11","PhotoCount":"12"},{"Select":"21","PhotoCount":"22"}]';
Run Code Online (Sandbox Code Playgroud)

例如:

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

    s = jQuery.parseJSON(s);

    alert( s[0]["Select"] );
});
Run Code Online (Sandbox Code Playgroud)

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

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

jQuery的

json api