Was machen die folgenden Funktionen: JSON.stringify({...}) und JSON.parse(text)?

3 Antworten

Damit kannst du Objekte zu Text im JSON Format serialisieren bzw. parsen.

Ich denke das Konzept erklären andere bestimmt besser, daher möchte ich vor allem darauf eingehen wofür das in der Praxis genutzt wird.

Wofür man das nutzt:

Wenn man z.B. Daten als Text übers Netzwerk senden möchte oder Antworten von einer API von Json-Text zu einem Javascript objekt umwandeln möchte. Z.B. gibt die API {ok: true, message: "Sucess!"} zurück. Wenn du jetzt let response = JSON.parse(responseText); machst kannst du mit response.ok z.B. auf das ok Feld zugreifen.

Außerdem kann man das in JS nutzen um eine Kopie von einem Objekt zu erstellen. Also so: let copyObject = JSON.parse(JSON.stringify(originalObject)); Es gibt auch andere Wege allerdings ist das tatsächlich quasi der beste Weg wenn man eine deep copy haben möchte, auch wenns dämlich wirkt/aussieht. (deep copy = auch tiefer liegende Objekte werden kopiert, während bei einer Shallow Copy zwar das Objekt selber kopiert wird aber verweise auf andere Objekte immer noch auf die selben unter Objekte zeigen).

Außerdem ist es schneller eine große Datenmenge als Json String zu parsen als die Daten in eine JavaScript Datei zu schreiben, das hängt damit zusammen das JSON simpler ist zu parsen.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops
var json = {"key1": "value1"};
var jsonString = JSON.stringify(json);
console.log(jsonString); //Ein String mit Inhalt {"key1":"value1"}
console.log(JSON.parse(jsonString)); //Ein Objekt wie zu Beginn  
Woher ich das weiß:Berufserfahrung

Naja, das eine parst einen JSON-String als Objekt, das andere macht nen objekt zu einem json string.