Convierta el objeto JS en una cadena JSON

Si definí un objeto en JS con:

var j={"name":"binchen"};

¿Cómo puedo convertir el objeto a JSON? La cadena de salida debe ser:

'{"name":"binchen"}'

preguntado el 12 de noviembre de 10 a las 05:11

JSON.stringify() es el método que estás buscando. -

Siempre existe la primera vez que tienes que aprenderlo. -

JSON.stringify también es una buena forma de copiar un objeto:

27 Respuestas

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

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

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

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

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

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

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

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

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"}

EN VIVO http://jsfiddle.net/mailmerohit5/y78zum6v/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Utilizar este,

var j={"name":"binchen"};
 var myJSON = JSON.stringify(j);

Respondido el 27 de Septiembre de 19 a las 12:09

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 or haz tu propia pregunta.