JSON in JavaScript parsen? [duplicate]

Lesezeit: 7 Minuten

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

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

Wie bekomme ich die Werte result und count davon?

  • var json = ‘{“Ergebnis”:true,”count”:1}’, obj = JSON.parse(json); console.log(obj.count); // bei Verwendung in nodejs dann Konsole verwenden

    – Shechar Tyagi

    19. Dezember 2016 um 13:06 Uhr

JSON in JavaScript parsen duplicate
Andi E

Die Standardmethode zum Analysieren von JSON in JavaScript ist JSON.parse()

Die JSON API wurde mit eingeführt ES5 (2011) und wurde seitdem in >99 % der Browser nach Marktanteil implementiert, und Node.js. Seine Verwendung ist einfach:

const json = '{ "fruit": "pineapple", "fingers": 10 }';
const obj = JSON.parse(json);
console.log(obj.fruit, obj.fingers);

Die einzige Zeit, die Sie nicht nutzen können JSON.parse() ist, wenn Sie für einen alten Browser wie IE 7 (2006), IE 6 (2001), Firefox 3 (2008), Safari 3.x (2009) usw. programmieren. Alternativ können Sie sich in einer esoterischen JavaScript-Umgebung befinden das enthält nicht die Standard-APIs. Verwenden Sie in diesen Fällen json2.jsdie Referenzimplementierung von JSON, geschrieben von Douglas Crockford, dem Erfinder von JSON. Diese Bibliothek stellt eine Implementierung von bereit JSON.parse().

Bei der Verarbeitung extrem großer JSON-Dateien JSON.parse() kann aufgrund seiner synchronen Natur und seines Designs ersticken. Um dies zu beheben, empfiehlt die JSON-Website Bibliotheken von Drittanbietern wie z Oboe.js und Klarinettedie Streaming-JSON-Parsing bereitstellen.

jQuery hatte einmal eine $.parseJSON() Funktion, wurde aber mit jQuery 3.0 als veraltet markiert. Jedenfalls war es lange Zeit nicht mehr als eine Hülle JSON.parse().

  • @Marwan: IE 8+ unterstützt JSON.parse(). Für IE 6, 7 und andere ältere Browser können Sie die json2.js verwenden, auf die ich in meinem Beitrag verlinkt habe. Alternativ, aber weniger sicher, können Sie verwenden eval.

    – Andi E

    16. November 2011 um 9:46 Uhr

  • Es sei denn, er braucht es auch JSON.stringify()

    – Meister der Diebe

    9. Mai 2012 um 11:19 Uhr

  • Hinweis für Prüfer: Bitte überprüfen Sie Peer-Bearbeitungen gründlich, bevor Sie sie zulassen, da Ihre Aktionen unerwünschte Nebeneffekte für Benutzer verursachen können, die Code aus Antworten kopieren und einfügen.

    – Andi E

    2. April 2013 um 9:42 Uhr

  • Es ist nicht erforderlich, zuerst nach nativer Unterstützung zu suchen und dann auf jQuery zurückzugreifen. jQuery 1.10 versucht JSON.parse zuerst, dann die eigene Implementierung. jQuery 2.x ruft direkt auf JSON.parse ohne Prüfung oder Fallback.

    – Jascha

    4. November 2013 um 15:29 Uhr


  • Details zur Browserunterstützung: Kann ich JSON-Parsing verwenden?

    – Peter V. Mørch

    7. Januar 2014 um 10:11 Uhr

1646879708 188 JSON in JavaScript parsen duplicate
Clarence Fredericks

WARNUNG!

Diese Antwort stammt aus einer alten Ära der JavaScript-Programmierung, in der es keine integrierte Möglichkeit gab, JSON zu analysieren. Die hier gegebenen Ratschläge sind nicht mehr anwendbar und wahrscheinlich gefährlich. Aus heutiger Sicht ist das Parsen von JSON durch Einbeziehen von jQuery oder Aufrufen von eval() Unsinn. Sofern Sie IE 7 oder Firefox 3.0 nicht unterstützen müssen, ist der richtige Weg zum Analysieren von JSON JSON.parse().

Zunächst 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 den String einfach in eine anonyme Funktion packen und die eval-Funktion verwenden.

Dies wird nicht empfohlen, wenn Sie das JSON-Objekt aus einer anderen Quelle erhalten, die nicht absolut vertrauenswürdig ist, da die Evaluierungsfunktion, wenn Sie so wollen, abtrünnigen 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 wenn Sie sich keine Sorgen um ältere Browser machen, können Sie immer die JSON.parse-Methode verwenden.

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

  • Großartiger Mann! Ich konnte die JSON-Bibliothek nicht importieren, da sie mit anderen Bibliotheken in Konflikt stand

    – Tahir Malik

    1. Oktober 2012 um 16:09 Uhr

  • eval() ist in Ordnung, um einen Job zu erfüllen, während es jedes Javascript-Programm kompilieren und ausführen kann, also kann es sein Sicherheitsprobleme. Ich denke, JSON.parse() ist eine bessere Wahl.

    – ray6080

    10. September 2013 um 11:58 Uhr

  • Hinweis für Passanten: Hier ist ein gutes Online-Tool, um zu überprüfen, ob Ihre JSON-Zeichenfolge gültig ist: jsonlint.com

    – Amal Murali

    30. Juli 2014 um 15:40 Uhr

  • NEIN NEIN NEIN!!! Die Verwendung von eval zur Auswertung von JSON ist eine wirklich gefährliche Idee. Sind Sie sich zu 100 % sicher, dass keine Möglichkeit besteht, dass jemand seinen eigenen Code in Ihren String einfügt?

    – Karl

    21. Juli 2015 um 18:07 Uhr

  • Erwähnenswert ist, dass es so etwas wie ein nicht gibt JSON-Objekt.

    – Jezen Thomas

    2. September 2016 um 15:29 Uhr

1646879708 176 JSON in JavaScript parsen duplicate
Meilenstil

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

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

JSON in JavaScript parsen duplicate
huwiler

Wenn Sie verwenden möchten JSON3 für ältere Browser können Sie es bedingt laden mit:

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

Jetzt die Norm window.JSON Objekt steht Ihnen unabhängig davon zur Verfügung, welchen Browser ein Client ausführt.

1646879709 107 JSON in JavaScript parsen duplicate
Joke_Sense10

Das folgende Beispiel soll es verdeutlichen:

let contactJSON = '{"name":"John Doe","age":"11"}';
let contact = JSON.parse(contactJSON);
console.log(contact.name + ", " + contact.age);

// Output: John Doe, 11

  • verwenden eval() ist gefährlich

    – Simon B.

    26. März 2019 um 14:17 Uhr

  • @SimonB. Können Sie bitte näher darauf eingehen?

    – M. Al Jumaily

    8. August 2019 um 18:55 Uhr

  • @M.AlJumaily siehe softwareengineering.stackexchange.com/questions/311507/… und bringen Sie Ihre Fragen zum nächsten Geek-Treffen für ein kostenloses heißes Thema. Freie Kampfworte zu erwarten. :-Z

    – Simon B.

    8. August 2019 um 21:27 Uhr

  • @SimonB. Danke, ich werde es gründlich lesen 🙂

    – M. Al Jumaily

    8. August 2019 um 21:29 Uhr

1646879709 717 JSON in JavaScript parsen duplicate
Peter Mortensen

Wenn Sie eine Zeichenfolgenvariable (eine wohlgeformte JSON-Zeichenfolge) von MVC @Viewbag mit doppelten Anführungszeichen „““ als Anführungszeichen an JSON.parse übergeben, müssen Sie sie vor JSON.parse verarbeiten (jsonstring)

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

  • verwenden eval() ist gefährlich

    – Simon B.

    26. März 2019 um 14:17 Uhr

  • @SimonB. Können Sie bitte näher darauf eingehen?

    – M. Al Jumaily

    8. August 2019 um 18:55 Uhr

  • @M.AlJumaily siehe softwareengineering.stackexchange.com/questions/311507/… und bringen Sie Ihre Fragen zum nächsten Geek-Treffen für ein kostenloses heißes Thema. Freie Kampfworte zu erwarten. :-Z

    – Simon B.

    8. August 2019 um 21:27 Uhr

  • @SimonB. Danke, ich werde es gründlich lesen 🙂

    – M. Al Jumaily

    8. August 2019 um 21:29 Uhr

1646879710 202 JSON in JavaScript parsen duplicate
nandur93

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

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

ODER

Sie können diesen folgenden Code verwenden.

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

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

Aktualisieren:

Wenn Ihre Ausgabe ist undefined dann müssen Sie DIESER Antwort folgen. Vielleicht hat Ihr Json-String ein Array-Format. Sie müssen wie folgt auf die json-Objekteigenschaften zugreifen

var response="[{"result":true , "count":1}]"; // <~ Array with [] tag
var jsonObject = JSON.parse(response);
console.log(jsonObject[0].result); //Output true
console.log(jsonObject[0].count); //Output 1

  • jsonObject.count im console.log gibt undefiniert zurück. Wie soll ich es nennen?

    – Sahar Ch.

    21. Mai 2014 um 16:27 Uhr


  • Verwenden Sie eval nicht zum Analysieren von JSON, insbesondere wenn eine unbekannte Partei die Daten senden kann. Eine Funktion kann in einen String eingeschlossen werden!

    – Ray Kim

    5. November 2020 um 6:06 Uhr

985720cookie-checkJSON in JavaScript parsen? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy