追加 - javascript 配列 json 変換




JavaScriptでJSONを解析しますか? (11)

この質問には既に回答があります:

JavaScriptでJSON文字列を解析したいと思います。 レスポンスは次のようなものです

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

値のresultを取得してこれからcountますか?


JSON.parse( jsonstring )の前にJSON.parseに文字列変数(整形式のJSON文字列)を二重引用符 '' 'が付いたMVC @Viewbag(引用符で)に渡すと、

    var jsonstring = '@ViewBag.jsonstring';
    jsonstring = jsonstring.replace(/"/g, '"');  

JSON.parse()は、関数に渡されたJSONストリングをJSONオブジェクトに変換します。

F12キーを押してブラウザのInspect Elementを開き、コンソールに移動して次のコマンドを入力します。

var response = '{"result":true,"count":1}'; // Sample JSON object (string form)
JSON.parse(response); // Converts passed string to a JSON object.

次のコマンドを実行します。

console.log(JSON.parse(response));

Object {result:true、count:1}として出力されます。

そのオブジェクトを使用するには、そのオブジェクトを変数に割り当てることができますobj

var obj = JSON.parse(response);

objとドット(。)演算子を使用することで、JSONオブジェクトのプロパティにアクセスできます。

コマンドを実行してみてください

console.log(obj.result);

Dojo Toolkitを使用する場合:

require(["dojo/json"], function(JSON){
    JSON.parse('{"hello":"world"}', true);
});

parse()メソッドを使用parse()最も簡単な方法は次のとおりです。

var response = '{"a":true,"b":1}';
var JsonObject= JSON.parse(response);

これは値を取得する方法の例です:

var myResponseResult = JsonObject.a;
var myResponseCount = JsonObject.b;

これを外部サイトから取得している場合は、jQueryのgetJSONを使用すると便利です。 リストの場合は、$ .eachで繰り返し処理できます。

$.getJSON(url, function (json) {
    alert(json.result);
    $.each(json.list, function (i, fb) {
        alert(fb.result);
    });
});

ほとんどのブラウザは、 JSON.parse()サポートしています。このJSON.parse()は、ECMA-262 5th Edition(JavaScriptが基づいている仕様JSON.parse()で定義されています。 その使用法は簡単です:

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

alert(obj.count);

/* or ES6 */

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

ブラウザを使用しない場合は、 json2.jsを使用して実装できます。

コメントに記載されているように、すでにjQueryを使用している場合は、 JSON.parse使用可能な場合)または古いブラウザのeval形式にマップする$.parseJSON関数があります。 しかし、これはJSON.parseでも実行される追加の不要なチェックを実行しJSON.parse 。そのため、すべてのパフォーマンスを最適にするには、次のように使用することをお勧めします。

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

これにより、ネイティブの解析関数に渡す前に、jQueryで文字列の健全性チェックを実行するのではなく、ネイティブJSON.parseすぐに使用できます。


もし良かったら

var response = '{"result":true,"count":1}';
var JsonObject= JSON.parse(response);

JsonObjectでJSON要素にアクセスするには、ドット(。)を使用します。

JsonObject.result;
JsonObject.count;

ライブラリを使用しなければ、 evalを使うことができます - あなたが使うべき唯一の時間です。 ライブラリを使用する方が安全です。

例えば...

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

var parsedJSON = eval('('+response+')');

var result=parsedJSON.result;
var count=parsedJSON.count;

alert('result:'+result+' count:'+count);

多数のブラウザで言及されているように、ほとんどのブラウザはJSON.parseJSON.stringifyサポートしていJSON.stringify

AngularJS (私が強くお勧めします)を使用している場合は、必要な機能も提供します。

var myJson = '{"result": true, "count": 1}';
var obj = angular.fromJson(myJson);//equivalent to JSON.parse(myJson)
var backToJson = angular.toJson(obj);//equivalent to JSON.stringify(obj)

AngularJSの機能を追加して別のオプションを提供したかっただけです。 AngularJSはInternet Explorer 8(およびそれ以前のバージョン)を正式にサポートしていないことに注意してください。経験を通してほとんどのものはかなりうまくいくようです。


次の例は、これを明確にします:

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関数を使用することをお勧めします。


簡単な方法:

var data = '{"result":true,"count":1}';
var json = eval("[" +data+ "]")[0]; // ;)






parsing