Differenza tra JSON.stringify e JSON.parse

Sono stato confuso su quando utilizzare questi due metodi di analisi.

Dopo aver echo i miei dati json_encoded e recuperarli tramite ajax, mi capita spesso di confondere quando dovrei usare JSON.stringify e JSON.parse .

Ottengo [object,object] nel mio console.log quando analizzato e un object JavaScript quando è stato sottoposto a stringa.

 $.ajax({ url: "demo_test.txt", success: function(data) { console.log(JSON.stringify(data)) /* OR */ console.log(JSON.parse(data)) //this is what I am unsure about? } }); 

JSON.stringify trasforma un object JavaScript in testo JSON e memorizza il testo JSON in una stringa.

JSON.parse trasforma una stringa di testo JSON in un object JavaScript.

JSON.parse() è per “analizzare” qualcosa che è stato ricevuto come JSON.
JSON.stringify() consiste nel creare una stringa JSON da un object / array.

Sono l’inverso l’uno dell’altro. JSON.stringify() serializza un object JS in una stringa JSON, mentre JSON.parse() deserializza una stringa JSON in un object JS.

Innanzitutto, la funzione JSON.stringify() converte un valore JavaScript in una stringa JSON (JavaScript Object Notation). JSON.parse() funzione JSON.parse() converte una stringa JSON (JavaScript Object Notation) in un object. Per ulteriori informazioni su queste due funzioni, fare riferimento ai seguenti collegamenti.

https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx https://msdn.microsoft.com/library/cc836466(v=vs.94).aspx

In secondo luogo, il seguente esempio ti sarà utile per comprendere queste due funzioni.

 

Sono gli opposti l’uno dell’altro.

JSON.stringify ()

JSON.stringify () serializza un object JS in una stringa JSON.

 JSON.stringify({}); // '{}' JSON.stringify(true); // 'true' JSON.stringify('foo'); // '"foo"' JSON.stringify([1, 'false', false]); // '[1,"false",false]' JSON.stringify({ x: 5 }); // '{"x":5}' JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)) // '"2006-01-02T15:04:05.000Z"' JSON.stringify({ x: 5, y: 6 }); // '{"x":5,"y":6}' or '{"y":6,"x":5}' JSON.stringify([new Number(1), new String('false'), new Boolean(false)]); // '[1,"false",false]' 

JSON.parse ()

Il metodo JSON.parse () analizza una stringa come JSON, trasformando facoltativamente il valore prodotto.

 JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null 
 var log = { "page": window.location.href, "item": "item", "action": "action" }; log = JSON.stringify(log); console.log(log); console.log(JSON.parse(log)); 

// L’output sarà:

// Per 1st Console è una String Like:

 '{ "page": window.location.href,"item": "item","action": "action" }' 

// Per la 2a console è un object simile a:

 Object { page : window.location.href, item : "item", action : "action" } 

JSON.stringify() Converte un object in una stringa.

JSON.parse() Converte una stringa JSON in un object.

La vera confusione qui non riguarda parse vs stringify, riguarda il tipo di data parametro data del callback di successo.

data possono essere sia la risposta grezza, cioè una stringa, oppure può essere un object JavaScript, come da documentazione:

successo

Tipo: Funzione (Qualsiasi valore, Stringa textStatus, jqXHR jqXHR) Una funzione da chiamare se la richiesta ha esito positivo. La funzione ottiene tre argomenti: i dati restituiti dal server, formattati in base al parametro dataType o alla funzione di callback dataFilter, se specificato; <..>

E il dataType è impostato su “congettura intelligente”

dataType (predefinito: Intelligent Guess (xml, json, script o html))

Tipo: String Il tipo di dati che ci si aspetta dal server. Se nessuno è specificato, jQuery proverà a dedurlo in base al tipo MIME della risposta (un tipo XML MIME produrrà XML, in 1.4 JSON produrrà un object JavaScript, in 1.4 lo script eseguirà lo script e qualsiasi altra cosa sarà restituito come stringa).

Oggetto JavaScript <-> Stringa JSON


 JSON.stringify() <-> JSON.parse() 

JSON.stringify (obj) – Prende qualsiasi object serializzabile e restituisce la rappresentazione JSON come una stringa.

 JSON.stringify() -> Object To String. 

JSON.parse (string) – Prende una stringa JSON ben formata e restituisce l’object JavaScript corrispondente.

 JSON.parse() -> String To Object. 

Spiegazione: JSON.stringify (obj [, replacer [, space]]);

Replacer / Space – opzionale o prende il valore intero o è ansible chiamare la funzione di ritorno del tipo interger.

 function replacer(key, value) { if (typeof value === 'number' && !isFinite(value)) { return String(value); } return value; } 
  • Replacer Just Use per sostituire non finito no con null.
  • Utilizzo dello spazio per il rientro di JSON String dallo spazio

Sono l’esatto opposto l’uno dell’altro.

JSON.parse() viene utilizzato per analizzare i dati ricevuti come JSON ; deserializza una stringa JSON in un object JavaScript .

JSON.stringify() d’altra parte è usato per creare una stringa JSON da un object o array ; serializza un object JavaScript in una stringa JSON .

JSON.stringify(obj [, replacer [, space]]) – Prende qualsiasi object serializzabile e restituisce la rappresentazione JSON come una stringa.

JSON.parse(string) – Prende una stringa JSON ben formata e restituisce l’object JavaScript corrispondente.

Si stanno opponendosi l’un l’altro. JSON.Stringify() converte JSON in stringa e JSON.Parse() analizza una stringa in JSON.

Non so se è stato menzionato, ma uno degli usi di JSON.parse (JSON.stringify (myObject)) consiste nel creare un clone dell’object originale.

Questo è utile quando vuoi fare confusione con alcuni dati senza influenzare l’object originale. Probabilmente non è il modo più pulito / veloce, ma sicuramente il più semplice per gli oggetti che non sono complessi.

JSON: Viene principalmente utilizzato per lo scambio di dati da / verso il server. Prima di inviare l’object JSON al server, deve essere una stringa.

 JSON.stringify() //Converts the JSON object into the string representation. var jsonData={"Name":"ABC","Dept":"Software"};// It is a JSON object var jsonString=JSON.stringify(jsonData);// It is a string representation of the object // jsonString === '{"Name":"ABC","Dept":"Software"}'; is true 

Converte anche la matrice Javascript in stringa

 var arrayObject=["ABC","Software"];// It is array object var arrString=JSON.stringify(array);// It is string representation of the array (object) // arrString === '["ABC","Software"]'; is true 

Quando abbiamo ricevuto i dati JSON dal server, i dati sarebbero il formato stringa. Quindi convertiamo la stringa in object JSON.

 JSON.parse() //To convert the string into JSON object. var data='{ "name":"ABC", "Dept":"Software"}'// it is a string (even though it looks like an object) var JsonData= JSON.parse(data);// It is a JSON Object representation of the string. // JsonData === { "name":"ABC", "Dept":"Software"}; is true 

JSON.parse() è usato per convertire String in Object.
JSON.stringify() è usato per convertire Object in String.

Puoi anche riferirti a questo …