Se avessi definito un oggetto in JS con:
var j={"name":"binchen"};
Come posso convertire l'oggetto in JSON? La stringa di output dovrebbe essere:
'{"name":"binchen"}'
Se avessi definito un oggetto in JS con:
var j={"name":"binchen"};
Come posso convertire l'oggetto in JSON? La stringa di output dovrebbe essere:
'{"name":"binchen"}'
Risposte:
Tutti i browser attuali hanno il supporto nativo JSON integrato. Quindi, purché non si tratti di browser preistorici come IE6 / 7, è possibile farlo altrettanto facilmente:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
JSON.stringify(j);
funzionare
var formattedJSON = JSON.stringify(j, null, 2);
Con JSON.stringify()
trovato in json2.js o nativo nella maggior parte dei browser moderni.
JSON.stringify(value, replacer, space) value any JavaScript value, usually an object or array. replacer an optional parameter that determines how object values are stringified for objects. It can be a function or an array of strings. space an optional parameter that specifies the indentation of nested structures. If it is omitted, the text will be packed without extra whitespace. If it is a number, it will specify the number of spaces to indent at each level. If it is a string (such as '\t' or ' '), it contains the characters used to indent at each level. This method produces a JSON text from a JavaScript value.
replacer
è opzionale, quindi se si desidera utilizzare ancora l' space
arg si mette null
per replacer
. Se sei interessato a utilizzare questa funzione per la stampa carina, ho trovato utile anche questa risposta: stackoverflow.com/a/7220510/857209
Scopri il modo migliore / aggiornato di Thomas Frank:
Aggiornamento del 17 maggio 2008: piccolo disinfettante aggiunto al metodo toObject. Ora toObject () non eval () la stringa se trova del codice dannoso al suo interno. Per una sicurezza ancora maggiore: non impostare il flag includeFunctions su true.
Douglas Crockford, padre del concetto JSON, scrisse uno dei primi stringificatori per JavaScript. Più tardi Steve Yen a Trim Path scrisse una versione migliorata che ho usato per un po 'di tempo. Sono le mie modifiche alla versione di Steve che vorrei condividere con te. Fondamentalmente derivavano dal mio desiderio di creare il stringificatore:
- gestire e ripristinare riferimenti ciclici
- includere il codice JavaScript per funzioni / metodi (come opzione)
- escludere i membri dell'oggetto da Object.prototype, se necessario.
È possibile utilizzare il metodo JSON.stringify () per convertire l'oggetto JSON in String.
var j={"name":"binchen"};
JSON.stringify(j)
Per il processo inverso, è possibile utilizzare il metodo JSON.parse () per convertire la stringa JSON in oggetto JSON.
In angularJS
angular.toJson(obj, pretty);
obj: input da serializzare in JSON.
pretty (opzionale):
se impostato su true, l'output JSON conterrà newline e spazi bianchi. Se impostato su un numero intero, l'output JSON conterrà tanti spazi per rientro.
(impostazione predefinita: 2)
JSON.stringify(j, null, 4)
ti darebbe abbellito JSON nel caso abbiate bisogno anche di abbellimento
Il secondo parametro è replacer. Può essere utilizzato come filtro in cui è possibile filtrare determinati valori chiave durante la stringa. Se impostato su null restituirà tutte le coppie di valori chiave
Se stai usando AngularJS, il filtro 'json' dovrebbe farlo:
<span>{{someObject | json}}</span>
JSON.stringify
trasforma un oggetto Javascript in testo JSON e memorizza il testo JSON in una stringa.
La conversione è un oggetto in stringa
JSON.parse
trasforma una stringa di testo JSON in un oggetto Javascript.
La conversione è una stringa in oggetto
var j={"name":"binchen"};
per renderlo possibile utilizzare una stringa JSON seguente.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Per maggiori informazioni puoi consultare questo link qui sotto.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Una definizione definita per questo, fino a quando non facciamo strano dal metodo stringify
var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
json +=",";
}
json+="}";
document.write(json);
PRODUZIONE
{"name":"binchen","class":"awesome"}
Avevo problemi con la memoria a corto di stringify e altre soluzioni non sembravano funzionare (almeno non riuscivo a farle funzionare) che è quando mi sono imbattuto in questo thread. Grazie a Rohit Kumar ho appena passato il mio oggetto JSON molto grande per impedirne l'arresto anomalo
var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
MyObjectStringify += JSON.stringify(j[x]);
count++;
if (count < last)
MyObjectStringify += ",";
}
MyObjectStringify += "]}";
MyObjectStringify ti darebbe la tua rappresentazione di stringa (proprio come menzionato altre volte in questo thread) tranne se hai un oggetto di grandi dimensioni, dovrebbe funzionare anche questo - assicurati solo di costruirlo per adattarlo alle tue esigenze - Ne avevo bisogno per avere un nome che array
Woking ... Facile da usare
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Grazie
puoi usare la funzione stringify nativa in questo modo
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
se si desidera ottenere il valore delle proprietà json in formato stringa, utilizzare il seguente modo
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
Per il debug in Node JS è possibile utilizzare util.inspect () . Funziona meglio con riferimenti circolari.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
Le sostituzioni JSON esistenti erano troppo per me, quindi ho scritto la mia funzione. Questo sembra funzionare, ma potrei aver perso diversi casi limite (che non si verificano nel mio progetto). E probabilmente non funzionerà per oggetti preesistenti, ma solo per dati fatti da sé.
function simpleJSONstringify(obj) {
var prop, str, val,
isArray = obj instanceof Array;
if (typeof obj !== "object") return false;
str = isArray ? "[" : "{";
function quote(str) {
if (typeof str !== "string") str = str.toString();
return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"'
}
for (prop in obj) {
if (!isArray) {
// quote property
str += quote(prop) + ": ";
}
// quote value
val = obj[prop];
str += typeof val === "object" ? simpleJSONstringify(val) : quote(val);
str += ", ";
}
// Remove last colon, close bracket
str = str.substr(0, str.length - 2) + ( isArray ? "]" : "}" );
return str;
}
So in order to convert a js object to JSON String:
La sintassi semplice per convertire un oggetto in una stringa è
JSON.stringify(value)
La sintassi completa è: JSON.stringify (value [, replacer [, space]])
Vediamo alcuni semplici esempi. Si noti che l'intera stringa ottiene virgolette doppie e tutti i dati nella stringa vengono salvati se necessario.
JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* "
{"foo":true,"baz":false}" */
const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1",
"property2":"value2"}"*/
Basta usare JSON.stringify
per fare tale conversione - tuttavia ricorda che i campi che hanno undefined
valore non saranno inclusi in JSON
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
Il campo remember
"scompare" dall'output json
È possibile utilizzare il metodo JSON.stringify () per convertire l'oggetto JSON in String.
var j={"name":"hello world"};
JSON.stringify(j);
Per riconvertire questa stringa in oggetto json, è possibile utilizzare il metodo JSON.parse ().
uso JSON.stringify(param1, param2, param3);
Cosa è: -
param1 -> valore da convertire in JSON
param2 -> funzione per stringere a modo tuo. In alternativa, serve come una lista bianca per la quale gli oggetti devono essere inclusi nel JSON finale.
param3 -> Un tipo di dati numerico che indica il numero di spazi bianchi da aggiungere. Il numero massimo consentito è 10.
converti str => obj
const onePlusStr = '[{"brand": "oneplus"}, {"model": "7T"}]';
const onePLusObj = JSON.parse (onePlusStr);
converti obj => str
const onePLusObjToStr = JSON.stringify (onePlusStr);
Riferimenti di analisi JSON in JS:
JSON.parse (): fare clic su
JSON.stringify (): fare clic
Usa la funzione stringify
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Buona codifica !!!
//use JSON.stringify({})
const stringified = JSON.stringify ({}) // passa l'oggetto che vuoi convertire in formato stringa
se hai una stringa json e non è racchiusa con [], prima avvolgila
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
O
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
JSON.stringify()
è il metodo che stai cercando.