我想将 JSON 字符串数组转换为 JSON 对象数组,而无需遍历每个项目并使用 JSON.parse 对其进行解析。
例子:
var s=[
'{"Select":"11", "PhotoCount":"12"}',
'{"Select":"21", "PhotoCount":"22"}',
'{"Select":"31", "PhotoCount":"32"}'];
我想将 JSON 字符串数组转换为 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
编辑(2020 年 4 月 30 日):
编辑,因为我对此答案表示赞成。有一个浏览器原生函数可以代替 JQuery(对于非 JQuery 用户),JSON.parse("<json string here>")
如果你真的有:
var s = ['{"Select":"11", "PhotoCount":"12"}','{"Select":"21", "PhotoCount":"22"}'];
然后简单地说:
var objs = $.map(s, $.parseJSON);