web-dev-qa-db-fra.com

Convertir un objet JS en chaîne JSON

Si j'ai défini un objet dans JS avec:

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

Comment puis-je convertir l'objet en JSON? La chaîne de sortie devrait être:

'{"name":"binchen"}'
1091
Bin Chen

Tous les navigateurs actuels ont un support JSON natif intégré. Donc, tant que vous n'avez pas affaire à des navigateurs préhistoriques comme IE6/7, vous pouvez le faire aussi facilement que cela:

var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'
1721
Andris

Avec JSON.stringify() trouvé dans json2.js ou dans la plupart des navigateurs modernes.

   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.
96

Découvrez la mise à jour/meilleure façon:

Mise à jour du 17 mai 2008: Petit désinfectant ajouté à la méthode toObject. À présent toObject () n'évalue pas () la chaîne s'il trouve un code malveillant dans Pour encore plus de sécurité: ne définissez pas l'indicateur includeFunctions sur true.

Douglas Crockford, père du concept JSON, a écrit l’un des premiers outils de codification pour JavaScript. Plus tard, Steve Yen de Trim Path a écrit une version améliorée de Nice, que j’utilise depuis quelque temps. Ce sont mes modifications à la version de Steve que j'aimerais partager avec vous. Fondamentalement, ils découlent de mon souhait de faire le stringifier:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.
26
Sarfraz

Vous pouvez utiliser JSON.stringify () method pour convertir un objet JSON en chaîne.

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

Pour le processus inverse, vous pouvez utiliser JSON.parse () method pour convertir une chaîne JSON en objet JSON.

17
Aravind Sachin

Json Stringify peut convertir votre objet js en json

 var x = {"name" : "name1"};
 JSON.stringify(x);
14
Aatif Bandey
JSON.stringify({"key":"value"});
10
Om Prakash

Si vous utilisez AngularJS, le filtre 'json' devrait le faire:

<span>{{someObject | json}}</span>
8
Ariel Cabib

En angularJS 

angular.toJson(obj, pretty);

obj: Entrée à sérialiser en JSON.

joli (facultatif):
Si défini sur true, la sortie JSON contiendra des nouvelles lignes et des espaces. Si la valeur est un entier, la sortie JSON contiendra autant d'espaces par indentation.

(défaut: 2)

8
Nazrul Islam

JSON.stringify transforme un objet Javascript en texte JSON et stocke ce texte JSON dans une chaîne.

La conversion est un objet Object en chaîne

JSON.parse transforme une chaîne de texte JSON en un objet Javascript.

La conversion est un String to Object

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

pour en faire une chaîne JSON suivante pourrait être utilisé.

JSON.stringify({"key":"value"});

JSON.stringify({"name":"binchen"});

Pour plus d'informations, vous pouvez vous référer à ce lien ci-dessous.

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

7
Dulith De Costa

JSON.stringify(j,null,4) vous donnerait un JSON embelli au cas où vous auriez également besoin d'embellissement

7
Vignesh Murugan

Une coutume définie pour cela, jusqu'à ce que nous fassions étrange de la méthode 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);

SORTIE

{"name":"binchen","class":"awesome"}

LIVEhttp://jsfiddle.net/mailmerohit5/y78zum6v/

5
Rohit Kumar

J'avais des problèmes avec une mémoire insuffisante et d'autres solutions ne semblaient pas fonctionner (au moins, je ne pouvais pas les faire fonctionner) et c'est à ce moment-là que je suis tombé sur ce fil. Merci à Rohit Kumar Je viens de parcourir mon très grand objet JSON pour l'empêcher de tomber en panne

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 vous donnerait votre représentation de chaîne (comme mentionné à plusieurs reprises dans ce fil), sauf si vous avez un objet de grande taille, cela devrait également fonctionner - assurez-vous simplement de le construire pour répondre à vos besoins - J'en avais besoin un nom que tableau

5
Sam
var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr  );
5
Tyler Durden

const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);

4
Arvind Audacious

Woking ... Facile à utiliser

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvert = JSON.stringify(formData);  // Convert to json
});

Merci

3
Subroto Biswas

Il suffit de copier et coller

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
});
3
Subroto Biswas

définir un objet

let obj = {
"firstname" : "Hello",
"lastname" : "javascript"

};

puis convertissez-le en chaîne en utilisant ce code

strObj= JSON.stringify(obj);

pour être sûr de consoler le résultat 

console.log(strObj);
1
nada diaa
So in order to convert a js object to JSON String: 

La syntaxe simple pour convertir un objet en une chaîne est

JSON.stringify(value)

La syntaxe complète est la suivante: JSON.stringify (valeur [ replacer [ espace]])

Voyons quelques exemples simples. Notez que toute la chaîne obtient guillemets et toutes les données de la chaîne sont échappées si est nécessaire

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"}"*/
1
Rahul Choudhary

si vous voulez obtenir la valeur des propriétés JSON au format chaîne, utilisez la méthode suivante 

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'
1
KARTHIKEYAN.A

Les remplacements JSON existants étaient trop pour moi, alors j'ai écrit ma propre fonction. Cela semble fonctionner, mais j'ai peut-être manqué plusieurs cas Edge (qui ne se produisent pas dans mon projet). Et ne fonctionnera probablement pas pour les objets préexistants, mais uniquement pour les données créées par vous-même.

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;
}
1
Hauke

vous pouvez utiliser la fonction native stringify comme ça

const j={ "name": "binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}

1

Vous pouvez utiliser JSON.stringify (j) pour convertir le fichier JSON en chaîne.

0
MH-Li

Tout ce dont vous avez besoin est d'ajouter ce code ci-dessous
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'

0
ubastosir

vous pouvez utiliser la fonction JSON.stringify () pour le faire.

0
Mitesh Panchal
var j={"name":"binchen"};
var x= json.stirngify(j);

cela convertiraJSONobject en a Stingified Object

pour une liaison à sens unique vous pouvez le faire en HTML

<span>{{j|json}}</span>

0
Vignesh

Pour le débogage dans le noeud JS, vous pouvez utiliser util.inspect () . Cela fonctionne mieux avec des références circulaires.

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
0
Pavel Netesa

JSON.strigify() est la meilleure pratique pour cela.

var x = {
    "name" : "name1",
    "age"    : 20
};
var json = JSON.stringify(x);
console.log(json);
0
Rakibul