Das JSON-Format (abgekürzt als JavaScript Object Notation) ist ein einfach zu schreibendes Textformat für den Datenaustausch. Basierend auf der nativen JavaScript-Syntax kann es Objekte, Arrays, Zahlen, Zeichenfolgen, Boolesche Werte und Null serialisieren. In ES5 wurde ein JSON-Objekt hinzugefügt, das speziell zur Verarbeitung von Daten im JSON-Format verwendet wird. JSON ist ein Objekt, hat aber nur zwei Methoden: Typ von JSON === 'Objekt' JSON.parse JSON.parse('{}') // {} JSON.parse('true') // wahr JSON.parse('null') // null JSON.parse-SyntaxJSON.parse(Text[, Wiederbelebung])
Rückgabewert: JavaScript-Objekt/-Wert, entsprechend dem Objekt/Wert des angegebenen JSON-Textes. Reviver-ParameterDie Reviver-Funktion wird verwendet, um den analysierten JavaScript-Wert zu konvertieren und zu verarbeiten und nach der Verarbeitung das Endergebnis zurückzugeben. Konvertierungsprozess:
Für die beiden Parameter
Grundlegende Typkonvertierung: JSON.parse('5', Funktion (Schlüssel, Wert) { console.log(`Schlüssel:${Schlüssel}, Wert:${Wert}`) }) // Schlüssel:, Wert: 5 JSON.parse('null', Funktion (Schlüssel, Wert) { console.log(`Schlüssel:${Schlüssel}, Wert:${Wert}`) }) // Schlüssel:, Wert: null JSON.parse('{}', Funktion (Schlüssel, Wert) { console.log(`Schlüssel:${Schlüssel}, Wert:`, Wert) }) // Schlüssel:, Wert:{} Objektobjekte und Arrays: JSON.parse('[1, 2]', Funktion (Schlüssel, Wert) { console.log(`Schlüssel:${Schlüssel}, Wert:`, Wert) }) // Schlüssel: 0, Wert: 1 // Schlüssel: 1, Wert: 2 // Schlüssel:, Wert: (2) [leer × 2] JSON.parse('{ "Benutzer": "Benutzername", "Info": { "Alter": 25, "Geschlecht": 1 } }', Funktion (Schlüssel, Wert) { console.log(`Schlüssel:${Schlüssel}, Wert::`, Wert) }) // Schlüssel: Benutzer, Wert: Zhang San// Schlüssel: Alter, Wert: 25 // Schlüssel:Geschlecht, Wert::1 // Schlüssel:Info, Wert:: {} // Schlüssel:, Wert:: {} Datenverarbeitung: JSON.parse('[1, 2]', Funktion (Schlüssel, Wert) { wenn(Schlüssel === '') { Rückgabewert } Rückgabewert + 3 }) // [4, 5] JSON.parse-FunktionenBeim Parsen eines JSON-Strings müssen einige Besonderheiten des JSON-Formats beachtet werden, da es sonst leicht zu Fehlern kommen kann. Für JSON-Daten gelten strenge Vorschriften hinsichtlich des Typs und Formats der Werte. Die spezifischen Regeln lauten wie folgt:
JSON.parse('"Abkürzung"') // 'China' JSON.parse(null) // null JSON.parse(111.) // 111 JSON.parse(0x12) // 18 JSON.parse(true) // wahr JSON.parse([]) // Nicht abgefangener Syntaxfehler: Unerwartetes Ende der JSON-Eingabe
JSON.parse('"Zeichenfolge"') // 'Zeichenfolge' JSON.parse('\'Zeichenfolge\'') // Nicht abgefangener Syntaxfehler: Unerwartetes Token ' in JSON an Position 0
JSON.parse('111') // 111 JSON.parse('0x12') // Nicht abgefangener Syntaxfehler: Unerwartetes Token x in JSON an Position 1 JSON.parse('111.232') // 111.232 JSON.parse('111.') // Nicht abgefangener Syntaxfehler: Unerwartetes Ende der JSON-Eingabe
JSON.parse (undefiniert) // Nicht abgefangener Syntaxfehler: Unerwartetes Token u in JSON an Position 0 JSON.parse(Symbol()) // Nicht abgefangener TypeError: Ein Symbolwert kann nicht in einen String konvertiert werden. JSON.parse('12n') // Nicht abgefangener Syntaxfehler: Unerwartetes Token n in JSON an Position 2
JSON.parse('[]') // [] JSON.parse('Objekt()') // Nicht abgefangener Syntaxfehler: Unerwartetes Token O in JSON an Position 0
JSON.parse('{"Schlüssel": 1 }') // {Schlüssel: 1} JSON.parse('{Schlüssel: 1 }') // Nicht abgefangener Syntaxfehler: Unerwartetes Token k in JSON an Position 1
JSON.parse('[1, 2, 3, 4, ]') // VM2771:1 Nicht abgefangener Syntaxfehler: Unerwartetes Token ] in JSON an Position 13 JSON.parse('{"Schlüssel" : 1, }') // VM2779:1 Nicht abgefangener Syntaxfehler: Unerwartetes Token } in JSON an Position 12
JSON.parse('{"\u0066":333}') // {f: 333}
JSON.parse('"\n"') // Nicht abgefangener Syntaxfehler: Unerwartetes Token Andere AnalysemethodenUm einen JSON-String in ein JSON-Objekt (JS-Objektwert) umzuwandeln, können Sie auch andere Methoden verwenden, es handelt sich dabei jedoch nicht um sichere Codes. const str = '{"name":"json","alter":18}' const json = JSON.parse(str) const json = eval("(" + str + ")") const json = (neue Funktion("return " + str))() JSON.stringify JSON.stringify-SyntaxJSON.stringify(Wert[, Ersetzer [, Leerzeichen]])
Rückgabewert: Eine JSON-formatierte Zeichenfolge, die den angegebenen Wert darstellt. replacer-ParameterDer Ersetzungsparameter kann eine der folgenden drei Situationen aufweisen:
JSON.stringify({key: 'json'}, null, null) // '{"key":"json"}' JSON.stringify({Schlüssel: 'json'}, true) // '{"Schlüssel":"json"}'
const obj = { json: "JSON", analysieren: 'PARSE', stringify: 'STRINGIFY' } JSON.stringify(Objekt, ['parsen', 'stringify']) // '{"parse":"PARSE","stringify":"STRINGIFY"}'
Verarbeitungsprozess:
JSON.stringify({ json: 1, stringify: { val: 'rr'} }, (Schlüssel, Wert) => { console.log(`Schlüssel: ${key}, Wert:`, Wert) Rückgabewert }) // Schlüssel: ,Wert: {json: 1, stringify: {…}} // Schlüssel: json, Wert: 1 // Schlüssel: stringify, Wert: {val: 'rr'} // Schlüssel: val, Wert: rr // '{"json":1,"stringify":{"val":"rr"}}' Typverarbeitung des Wertes:
JSON.stringify({ json: 1, stringify: 'rr' }, (Schlüssel, Wert) => { wenn (Typ des Wertes === 'Zahl') { gib 'ss' zurück } Rückgabewert }) // '{"json":"ss","stringify":"rr"}' JSON.stringify({ json: 1, stringify: 'rr' }, (Schlüssel, Wert) => { wenn (Typ des Wertes === 'Zahl') { Wert = undefiniert } Rückgabewert }) // '{"stringify":"rr"}' Das folgende Beispiel zeigt, wie ein Objektwert zurückgegeben wird: JSON.stringify({ json: 1, stringify: 'rr' }, (Schlüssel, Wert) => { if (typeof value === 'object') { // Wenn das gesamte Objekt zum ersten Mal zurückgegeben wird, ist der Typ „Object“ Rückgabewert { parse: 'dd' } } Rückgabewert }) '{"parse":"dd"}' RaumparameterDer Leerzeichenparameter wird verwendet, um den Abstand in der Ergebniszeichenfolge zu steuern und die Ausgabe zu verschönern. Zur Eingabe stehen drei mögliche Werte zur Verfügung:
JSON.stringify({Schlüssel: 'json'}, null, 2) // '{\n "Schlüssel": "json"\n}' JSON.stringify({Schlüssel: 'json', Liste: { str: 'str' } }, null, '|-') // '{\n|-"Schlüssel": "json",\n|-"Liste": {\n|-|-"str": "str"\n|-}\n}' JSON.stringify({Schlüssel: 'json'}, null, null) // '{"Schlüssel":"json"}' JSON.stringify-Funktion
JSON.stringify(333) // '333' JSON.stringify(true) // 'wahr' JSON.stringify(neuer String('333')) //'"333"' JSON.stringify(Boolean(true)) // 'wahr'
JSON.stringify('json') === 'json' // falsch JSON.stringify('json') === '"json"' // wahr
JSON.stringify(Symbol()) // undefiniert JSON.stringify([Symbol(), Math.abs, undefiniert]) // '[null,null,null]' JSON.stringify({ [Symbol()]: Math.abs, Schlüssel: nicht definiert }) // '{}'
JSON.stringify(null) // 'null' JSON.stringify(NaN) // 'null'
const obj = {} Objekt.defineProperties(obj, { 'json': { Wert: 'JSON', aufzählbar: true }, 'stringify': { Wert: 'STRINGIFY', aufzählbar: false } }) JSON.stringify(Objekt) // '{"json":"JSON"}'
JSON.stringify({[Symbol()]: 333}) // '{}'
const a = { '1': 911, 'r': 822, '11': 9922} JSON.stringify(a) // '{"1":911,"11":9922,"r":822}'
const a = { Schlüssel: 'json' } a.toJSON = () => 'JSON' JSON.stringify(a) // '"JSON"'
JSON.stringify(/\d/) // "{}" JSON.stringify(neuer Fehler()) // "{}" Wenn Sie das entsprechende Objekt serialisieren möchten, müssen Sie die Methode toJSON festlegen und implementieren. RegExp.prototype.toJSON = RegExp.prototype.toString JSON.stringify(/\d/) // '"/\\\\d/"'
JSON.stringify(neues Datum()) // '"2021-12-31T02:24:05.477Z"'
const a = {} ein.Schlüssel = ein JSON.stringify(a) // Nicht abgefangener TypeError: Konvertierung der kreisförmigen Struktur in JSON
JSON.stringify(12n) // Nicht abgefangener TypeError: Ich weiß nicht, wie man einen BigInt serialisiert
const a = {'\u0066': 333} JSON.stringify(a) // '{"f":333}' Damit ist dieser Artikel zur detaillierten Verwendung von JSON.parse und JSON.stringify abgeschlossen. Ich hoffe, dass es für jedermanns Studium hilfreich sein wird, und ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Einführung in die HTML-Formularsteuerung deaktivierte Attribute schreibgeschützt VS deaktiviert
Inhaltsverzeichnis MySQL-Client/Server-Protokoll ...
Lösung für das Problem der automatischen Trennung...
Überblick Binlog2sql ist ein Open-Source-MySQL-Bi...
Drei-Wege-Handshake-Phase Anzahl der Wiederholung...
Beim Schreiben von Projekten stoßen wir häufig au...
1. Stellen Sie sicher, dass das System über die e...
Die MySQL Master-Slave-Replikation ermöglicht die...
Seit der Aktivierung des https-Zugriffs für die g...
1. getElementById von IE8 unterstützt nur IDs, nic...
Download-Adresse: https://dev.mysql.com/downloads...
Um nach RocketMQ-Images zu suchen, können Sie auf...
1. Einführung in Navicat 1. Was ist Navicat? Navi...
Inhaltsverzeichnis 1. Integrieren Sie Ant Design ...
Wie können Sie das Lamaging von Routen vergessen,...
Ich freue mich sehr, an dieser Folge der Kartoffe...