Convierta el objeto JS en una cadena JSON
Frecuentes
Visto 1,634 veces
27 Respuestas
1970
Todos los navegadores actuales tienen soporte JSON nativo integrado. Por lo tanto, siempre que no se trate de navegadores prehistóricos como IE6 / 7, puede hacerlo con la misma facilidad:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
Respondido 07 Abr '20, 14:04
descargar este script para poder JSON.stringify(j);
trabajar - aabingunz
Trabajar en nodejs porque el nodo usa el mismo motor - georgelviv
Esta respuesta se publicó un año antes de que se lanzara IE9, por lo que en el momento de escribir este artículo, IE8 era un navegador moderno, o al menos era el IE más nuevo disponible. - Andris
JSON.stringify no convierte objetos anidados. ¿Alguna solución para eso .. ?? - Ritesh
Si necesita una cadena json más legible, puede usar un parámetro de espacio como var formattedJSON = JSON.stringify(j, null, 2);
- Jacek Gzel
113
Contamos con JSON.stringify()
encontrado en json2.js o nativo en la mayoría de los navegadores modernos.
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.
respondido 13 nov., 14:18
Para un poco más de claridad: replacer
is opcional, por lo que si desea seguir utilizando el space
arg tu pones null
para replacer
. Si está interesado en usar esta función para una impresión bonita, encontré que esta respuesta también es útil: stackoverflow.com/a/7220510/857209 - glenn lorenzo
¿Qué es reemplazante? - hanna mcquaig
35
Echa un vistazo a la forma actualizada / mejor de Thomas Frank:
Actualización 17 de mayo de 2008: Se agregó un pequeño desinfectante al método toObject. Ahora toObject () no evaluará () la cadena si encuentra algún código malicioso en ella. Para mayor seguridad: No establezca el indicador includeFunctions en verdadero.
Douglas Crockford, padre del concepto JSON, escribió uno de los primeros cadenas de caracteres para JavaScript. Más tarde, Steve Yen de Trim Path escribió una bonita versión mejorada que he usado durante algún tiempo. Son mis cambios a la versión de Steve los que me gustaría compartir con ustedes. Básicamente, se derivaron de mi deseo de hacer el encordador:
- manejar y restaurar referencias cíclicas
- incluir el código JavaScript para funciones / métodos (como una opción)
- excluya miembros de objeto de Object.prototype si es necesario.
respondido 20 nov., 19:22
26
Puedes usar el JSON.stringify () método para convertir el objeto JSON en String.
var j={"name":"binchen"};
JSON.stringify(j)
Para el proceso inverso, puede utilizar JSON.parse () método para convertir JSON String en JSON Object.
respondido 20 nov., 15:10
Gracias por agregar el proceso inverso. - david lavieri
13
JSON.stringify(j, null, 4)
le daría JSON embellecido en caso de que también necesite embellecimiento
El segundo parámetro es reemplazante. Se puede usar como filtro, donde puede filtrar ciertos valores clave al realizar la cadena. Si se establece en nulo, devolverá todos los pares clave-valor
contestado el 28 de mayo de 19 a las 01:05
11
En angularJS
angular.toJson(obj, pretty);
obj: Entrada que se serializará en JSON.
bonita (opcional):
Si se establece en verdadero, la salida JSON contendrá nuevas líneas y espacios en blanco. Si se establece en un número entero, la salida JSON contendrá esa cantidad de espacios por sangría.
(predeterminado: 2)
contestado el 17 de mayo de 16 a las 09:05
10
Si está utilizando AngularJS, el filtro 'json' debería hacerlo:
<span>{{someObject | json}}</span>
Respondido el 11 de Septiembre de 15 a las 06:09
9
JSON.stringify
convierte un objeto Javascript en texto JSON y almacena ese texto JSON en una cadena.
La conversión es una Objeto a cadena
JSON.parse
convierte una cadena de texto JSON en un objeto Javascript.
La conversión es una Cadena a objeto
var j={"name":"binchen"};
para convertirlo en una cadena JSON, se podría usar el siguiente.
JSON.stringify({"key":"value"});
JSON.stringify({"name":"binchen"});
Para obtener más información, puede consultar este enlace a continuación.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Respondido 13 Feb 17, 13:02
7
Una costumbre definida para esto, hasta que lo hacemos extraño desde el método 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);
SALIDA
{"name":"binchen","class":"awesome"}
Respondido 12 Oct 15, 10:10
no se escapa de las cadenas con comillas como: "a \" en una cadena "- alfakevin
Ese código personalizado está muy incompleto. No admite matrices, objetos ni caracteres especiales. Ejemplo: json {"arr": ["1", "2", "3"], "obj": {"a": "b"}, "clave \" con \\ caracteres especiales} ":" value "} generará {" arr ":" 1,2,3 "," obj ":" [object Object] "," key "with \ special} chars": "value"} ¡eso es incorrecto! - manuel romero
por supuesto, este código es solo un ejemplo de cómo jugar con códigos ... siempre deberíamos usar stringify ... JS ya había hecho el trabajo por nosotros - Rohit Kumar
7
Estaba teniendo problemas con stringify que se quedaba sin memoria y otras soluciones no parecían funcionar (al menos no pude hacer que funcionaran) que es cuando me topé con este hilo. Gracias a Rohit Kumar Solo iteraré a través de mi objeto JSON muy grande para evitar que se bloquee
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 le daría su representación de cadena (tal como se mencionó otras veces en este hilo) excepto si tiene un objeto grande, esto también debería funcionar: solo asegúrese de construirlo para satisfacer sus necesidades - Necesitaba que tuviera un nombre que matriz
contestado el 23 de mayo de 17 a las 12:05
6
Woking ... Fácil de usar
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to json
});
Muchas Gracias
respondido 28 nov., 16:03
3
puedes usar la función nativa de stringify como esta
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
Respondido 14 Oct 16, 11:10
3
si desea obtener el valor de las propiedades json en formato de cadena, use la siguiente manera
var i = {"x":1}
var j = JSON.stringify(i.x);
var k = JSON.stringify(i);
console.log(j);
"1"
console.log(k);
'{"x":1}'
respondido 29 nov., 16:15
3
Para depurar en Node JS puede usar util.inspect (). Funciona mejor con referencias circulares.
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
respondido 02 mar '18, 16:03
3
Los reemplazos de JSON existentes eran demasiado para mí, así que escribí mi propia función. Esto parece funcionar, pero es posible que haya pasado por alto varios casos extremos (que no ocurren en mi proyecto). Y probablemente no funcionará para ningún objeto preexistente, solo para datos hechos por uno mismo.
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 ();
// When the actual variable was a number, it was returning a number between quotation marks
// return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';
// Now, we are verifing if is a number and, if it is, we remove the quotation marks
str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';
if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
return str;
else
return str.replace (/^["]/, '').replace (/["]$/, '');
}
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;
}
contestado el 21 de mayo de 21 a las 04:05
2
So in order to convert a js object to JSON String:
La sintaxis simple para convertir un objeto en una cadena es
JSON.stringify(value)
La sintaxis completa es: JSON.stringify (valor [, reemplazo [, espacio]])
Veamos algunos ejemplos sencillos. Tenga en cuenta que toda la cadena obtiene comillas dobles y todos los datos de la cadena se escapan si es necesario.
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"}"*/
Respondido 03 Oct 18, 06:10
Sería genial si pudiera proporcionar una breve explicación de su código. - jonny
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación usted será capaz de comenta en cualquier publicación; en lugar, proporcionar respuestas que no requieran aclaración por parte del autor de la pregunta. - De la revisión - Rafael
He editado mi respuesta, muchas gracias por señalar a @Rafael y @ jonny. - Rahul Choudhary
1
Sólo tiene que utilizar JSON.stringify
para realizar dicha conversión; sin embargo, recuerde que los campos que tienen undefined
el valor no se incluirá en json
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
El campo remember
'desaparecer' de la salida json
Respondido 16 Oct 19, 16:10
Me acabas de salvar el día. No pude guardar mi objeto. ¡La clave de que los campos que tienen un valor indefinido no se incluirán en json resolvió mi problema! - Mohammad Ghonchesefidi
1
convertir str => obj
const onePlusStr = '[{"marca": "oneplus"}, {"modelo": "7T"}]';
const onePLusObj = JSON.parse (onePlusStr);
convertir obj => str
const onePLusObjToStr = JSON.stringify (onePlusStr);
Referencias del análisis JSON en JS:
JSON.parse (): clic
JSON.stringify (): clic
respondido 04 mar '20, 11:03
Referencias de análisis JSON en JS: JSON.parse (): w3schools.com/js/js_json_parse.asp JSON.stringify (): w3schools.com/js/js_json_stringify.asp - Yash
0
Puede usar el método JSON.stringify () para convertir el objeto JSON en String.
var j={"name":"hello world"};
JSON.stringify(j);
Para convertir esta cadena de nuevo en un objeto json, puede usar el método JSON.parse ().
respondido 06 nov., 19:06
0
utilizado JSON.stringify(param1, param2, param3);
Que es: -
param1 -> valor para convertir a JSON
param2 -> función para secuenciar a tu manera. Alternativamente, sirve como una lista blanca para los objetos que deben incluirse en el JSON final.
param3 -> Un tipo de datos numérico que indica el número de espacios en blanco para agregar. El máximo permitido son 10.
Respondido el 10 de diciembre de 19 a las 01:12
0
Método muy fácil de usar, pero no lo use en la versión (debido a posibles problemas de compatibilidad).
Genial para probar de tu lado.
Object.prototype.toSource()
//Usage:
obj.toSource();
respondido 10 mar '20, 11:03
0
Usa la función stringify
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Feliz codificación !!!
Respondido 16 Abr '20, 11:04
0
La forma más popular es la siguiente:
var obj = {name: "Martin", age: 30, country: "United States"};
// Converting JS object to JSON string
var json = JSON.stringify(obj);
console.log(json);
Respondido el 11 de junio de 20 a las 06:06
0
Use el JSON.stringify()
método:
const stringified = JSON.stringify({}) // pass object you want to convert in string format
Respondido el 08 de Septiembre de 20 a las 21:09
0
Simplemente use JSON.stringify (your_variableName) convertirá su objeto JSON en una cadena y, si desea convertir una cadena en un objeto, use JSON.parse (your_variableName)
respondido 11 nov., 20:10
-1
Utilizar este,
var j={"name":"binchen"};
var myJSON = JSON.stringify(j);
Respondido el 27 de Septiembre de 19 a las 12:09
-24
si tiene una cadena json y no está envuelta con [], envuélvala primero
var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);
OR
var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
respondido 16 nov., 14:06
El OP está tratando de ir al revés. Su pregunta responde al caso inverso en el que tiene una cadena JSON y quiere obtenerla como un objeto. - Josué Snider
ha hecho lo contrario a la pregunta ... debe usar la función JSON.stringfy () - Hardik patel
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript json string object or haz tu propia pregunta.
JSON.stringify()
es el método que estás buscando. - Gowtham GopalakrishnanSiempre existe la primera vez que tienes que aprenderlo. - Egan Wolf
JSON.stringify también es una buena forma de copiar un objeto: Hanna Mcquaig