この文字列を変換したい
{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}
2つのJSONオブジェクトの配列。どうすればいいですか?
ベスト
JQueryの使用:
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
var jsonObj = $.parseJSON('[' + str + ']');
jsonObj
はJSONオブジェクトです。
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"]);
}
それが役に立てば幸い..
それと同じくらい簡単です。
var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}';
dataObj = JSON.parse(str);
文字列の先頭と末尾に[
と]
を追加します。これにより、配列になります。次に、eval()
または何らかの安全なJSONシリアライザーを使用して、文字列をシリアル化し、実際のJavaScriptデータ型にします。
eval()
の代わりに https://github.com/douglascrockford/JSON-js を使用する必要があります。 evalは、簡単なデバッグ/テストを行っている場合のみです。
JQueryを使用している場合は、 parseJSON 関数を使用でき、JavaScriptのネイティブeval()
関数よりも望ましいです。
多くの人がuse evalと言っていることは知っています。 eval()js関数はコンパイラーを呼び出します。これにより、一連のセキュリティリスクが発生する可能性があります。可能な限り使用を避けるのが最善です。解析関数は、より安全な代替手段を提供します。