web-dev-qa-db-ja.com

JSON文字列をJavascriptのJSONオブジェクトの配列に変換する

この文字列を変換したい

{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}

2つのJSONオブジェクトの配列。どうすればいいですか?

ベスト

55
Sobis

JQueryの使用:

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');

jsonObjはJSONオブジェクトです。

88
darioo

Lucaが示したように、余分な[]を文字列に追加し、以下のコードを使用します。

var myObject = eval('(' + myJSONtext + ')');

それをテストするには、以下のスニペットを使用できます。

var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]";
var myObject = eval('(' + s + ')');
for (i in myObject)
{
   alert(myObject[i]["name"]);
}

それが役に立てば幸い..

27
AnarchistGeek

それと同じくらい簡単です。

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
 dataObj = JSON.parse(str);
21
Gyanesh Gouraw

文字列の先頭と末尾に[]を追加します。これにより、配列になります。次に、eval()または何らかの安全なJSONシリアライザーを使用して、文字列をシリアル化し、実際のJavaScriptデータ型にします。

eval()の代わりに https://github.com/douglascrockford/JSON-js を使用する必要があります。 evalは、簡単なデバッグ/テストを行っている場合のみです。

6
Luca Matteis

JQueryを使用している場合は、 parseJSON 関数を使用でき、JavaScriptのネイティブeval()関数よりも望ましいです。

4
greenimpala

多くの人がuse evalと言っていることは知っています。 eval()js関数はコンパイラーを呼び出します。これにより、一連のセキュリティリスクが発生する可能性があります。可能な限り使用を避けるのが最善です。解析関数は、より安全な代替手段を提供します。

1
Steve