work - JSON in JavaScript analysieren?




json parse javascript (11)

Das folgende Beispiel wird klarstellen:

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

// Output: x, 11

ODER

Sie können auch die eval Funktion verwenden. Im folgenden Beispiel wird die eval Funktion verwendet:

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

// Output: x, 11

Da die JSON.parse Funktion sicherer ist und schneller als die eval-Funktion ausgeführt wird, empfehle ich Ihnen, die Funktion JSON.parse verwenden.

https://code.i-harness.com

Diese Frage hat hier bereits eine Antwort:

Ich möchte eine JSON-Zeichenfolge in JavaScript analysieren. Die Antwort ist etwas wie

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

Wie kann ich die Werte erhalten und daraus count ?


Der einfachste Weg mit der parse() Methode:

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

Dies ist ein Beispiel dafür, wie man Werte erhält:

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

Ein einfacher Weg, es zu tun:

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

Ich dachte JSON.parse(myObject) würde funktionieren. Je nach Browser kann es sich jedoch lohnen, eval('('+myObject+')') . Das einzige Problem, das ich empfehlen kann, ist die mehrstufige Liste in JSON.


Ohne eine Bibliothek zu verwenden, können Sie eval - die einzige Zeit, die Sie verwenden sollten. Es ist jedoch sicherer, eine Bibliothek zu verwenden.

z.B...

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

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

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

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

Sie können die eval-Funktion wie in einigen anderen Antworten verwenden. (Vergessen Sie nicht die zusätzlichen Klammern.) Sie werden wissen, warum, wenn Sie tiefer graben, oder einfach die jQuery-Funktion parseJSON :

var response = '{"result":true , "count":1}'; 
var parsedJSON = $.parseJSON(response);

ODER

Sie können diesen Code unten verwenden.

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

Und Sie können mit jsonObject.result und jsonObject.count auf die Felder jsonObject.count .


Wenn Sie Dojo Toolkit verwenden :

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

Wenn Sie dies von einer externen Website erhalten, kann es hilfreich sein, jQuerys getJSON zu verwenden. Wenn es eine Liste ist, können Sie sie mit $ .each durchlaufen

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

Wenn Sie jQuery verwenden, ist es einfach:

var response = '{"result":true,"count":1}';
var obj = $.parseJSON(response);
alert(obj.result); //true
alert(obj.count); //1

Wenn du möchtest

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

Sie können auf die JSON-Elemente von JsonObject mit (.) dot zugreifen:

JsonObject.result;
JsonObject.count;

Zuerst müssen Sie sicherstellen, dass der JSON-Code gültig ist.

Danach würde ich empfehlen, eine JavaScript-Bibliothek wie jQuery oder Prototype zu verwenden, wenn Sie können, da diese Dinge in diesen Bibliotheken gut gehandhabt werden.

Wenn Sie andererseits keine Bibliothek verwenden möchten und für die Gültigkeit des JSON-Objekts bürgen können, würde ich die Zeichenfolge einfach in eine anonyme Funktion einfügen und die eval-Funktion verwenden.

Dies wird nicht empfohlen, wenn Sie das JSON-Objekt von einer anderen Quelle erhalten, die nicht absolut vertrauenswürdig ist, da die eval-Funktion möglicherweise Renegade-Code zulässt.

Hier ist ein Beispiel für die Verwendung der Eval-Funktion:

var strJSON = '{"result":true,"count":1}';
var objJSON = eval("(function(){return " + strJSON + ";})()");
alert(objJSON.result);
alert(objJSON.count);

Wenn Sie kontrollieren, welcher Browser verwendet wird, oder Sie sich nicht mit einem älteren Browser Sorgen machen, können Sie immer die JSON.parse-Methode verwenden.

Das ist wirklich die ideale Lösung für die Zukunft.





parsing