21

各アイテムをループせずにJSON文字列の配列をJSONオブジェクトの配列に変換し、JSON.parseを使用して解析したいと思います。

例:

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

3 に答える 3

54

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]);
于 2012-04-27T19:01:36.823 に答える
7
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"] );
});

次に、parse 関数を使用します。きっとうまくいきます。

編集:間違った関数名を付けたことを非常に残念に思います。それはjQuery.parseJSONです

Jクエリ

json API

編集 (2020 年 4 月 30 日):

この回答に賛成票を投じたので編集します。JQuery の代わりに利用できるブラウザー ネイティブ関数があります (JQuery 以外のユーザー向け)。JSON.parse("<json string here>")

于 2012-04-27T19:01:09.037 に答える
0

あなたが本当に持っている場合:

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

次に簡単に:

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

これがデモです。

于 2012-04-27T19:03:06.710 に答える