JavaScriptでJSONをパースする方法? [Javascript]

このエントリーをはてなブックマークに追加

質問:

JavascriptでJSONをパースしたんだけど。レスポンスとして考えてるのはこんな感じ:

var response = '{"result":true,"count":1}';

どうやったらresultとかcountとかの値を取ってこれる?

By user605334 | 質問日時: 2011年2月8日 16:34



回答1:

ほとんどのブラウザはJSON.parseをサポートしてて、ECMA-262第5版(JavaScriptが基づいている仕様)で定義されてる。使い方は簡単:

var json = '{"result":true,"count":1}',
obj = JSON.parse(json);
alert(obj.count);

これを実装することができないブラウザには、json2.jsをどうぞ。

すでにjQueryを使ってる場合は、$.parseJSON関数が(利用可能な場合は)JSON.parseにマップし、古いブラウザでは evalの形式にマップしてくれる。でも、これはJSON.parseでも実行される、余計なチェックをしてしまうので、どんな状況でもいいパフォーマンスが出るこんなやり方をオススメするかな:

var json = '{"result":true,"count":1}',
obj = JSON && JSON.parse(json) || $.parseJSON(json);

こうすると、ネイティブのパースする関数に渡す前にjQueryで文字列のサニティチェックを行わせるんじゃなくて、ネイティブのJSON.parseをすぐに使うことができる。

By Andy E | 回答日時: 2011年2月8日 16:38



回答2:

古いブラウザでJSON 3を使いたければ、こうやって条件付きでそれをロードすることができるよ:

<script>
window.JSON ||
document.write('<script src="//cdnjs.cloudflare.com/ajax/libs/json3/3.2.4/json3.min.js"><\/scr'+'ipt>');
</script>

これで標準のwindow.JSONオブジェクトはクライアントがどんなブラウザを使っていようと利用可能だよ。

By huwiler | 回答日時: 2013年4月19日 18:52



回答3:

これならわかりやすいかな?:

var jsontext = '{"name":"x","age":"11"}';
var getContact = JSON.parse(jsontext);
document.write(getContact.name + ", " + getContact.age);
// Output: x, 11

それか、eval関数を使うこともできるかな。次の例は、eval関数を使った例:

var jsontext = '{"name":"x","age":"11"}';
var getContact = eval('(' + jsontext + ')');
document.write(getContact.name + ", " + getContact.age);
// Output: x, 11

JSON.parse関数はより安全で、eval関数より速いから、JSON.parse関数を使うことをお勧めするよ。

By Joke_Sense10 | 回答日時: 2013年10月1日 7:42



Source: Parse JSON in JavaScript? [duplicate]

共有 コメント