Convertir un objet JS en chaîne JSON

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

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

comment convertir l'objet en JSON? La chaîne de sortie doit être:

'{"name":"binchen"}'
1035
demandé sur KARTHIKEYAN.A 2010-11-12 11:20:50

26 réponses

tous les navigateurs actuels ont le support natif JSON intégré. Aussi longtemps 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"}'
1643
répondu Andris 2017-04-15 19:08:37

Avec JSON.stringify() dans json2.js ou natif 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.
93
répondu Ignacio Vazquez-Abrams 2014-11-13 18:06:47

version mise à jour / version améliorée:

mise à jour du 17 mai 2008: petit désinfectant ajouté à la méthode toObject. maintenant toObject() n'eval() pas la chaîne s'il trouve un code malveillant dans il.Pour encore plus de sécurité: Ne pas mettre le drapeau includeFunctions à true.

Douglas Crockford, père du concept JSON, a écrit l'un des premiers stringificateurs pour JavaScript. Plus tard, Steve Yen De Trim Path a écrit une version améliorée agréable que j'ai utilisé pendant un certain temps. Ce sont mes changements à la version de Steve que j'aimerais partager avec vous. Au fond, ils découlent de mon désir 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.
25
répondu Sarfraz 2010-11-12 08:26:33

vous pouvez utiliser JSON.stringify () méthode pour convertir un objet JSON en chaîne.

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

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

15
répondu Aravind Sachin 2015-11-20 10:05:55

JSON Stringify peut convertir votre objet js en json

 var x = {"name" : "name1"};
 JSON.stringify(x);
13
répondu Aatif Bandey 2015-11-03 12:01:00
JSON.stringify({"key":"value"});
9
répondu Om Prakash 2015-06-25 14:38:08

si vous utilisez AngularJS, le filtre' json 'devrait suffire:

<span>{{someObject | json}}</span>
7
répondu Ariel Cabib 2015-09-11 05:38:45

Dans angularJS

angular.toJson(obj, pretty);

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

jolie(en option):

Si elle est définie à true, la sortie JSON contiendra newlines et whitespace. Si elle est définie à un entier, la sortie JSON contiendra autant d'espaces par indentation.

(par défaut: 2)

7
répondu Nazrul Islam 2016-05-17 08:42:18

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

la conversion est un objet à chaîne

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

la conversion est une chaîne à L'objet

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

pour en faire une chaîne de caractères suivant JSON 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

6
répondu Dulith De Costa 2017-02-13 13:15:38

JSON.stringify(j,null,4) vous donnerait beautified JSON au cas où vous avez besoin d'embellissement aussi

5
répondu Vignesh Murugan 2016-11-15 14:21:42
var someObj = { "name" : "some name" };
var someObjStr = JSON.stringify(someObj);
console.log( someObjStr  );
4
répondu Tyler Durden 2016-06-29 07:36:31

j'avais des problèmes avec stringify s'épuisant de mémoire et d'autres solutions ne semblaient pas fonctionner (au moins je ne pouvais pas les faire fonctionner) ce qui est quand je suis tombé sur ce fil. Merci à Rohit Kumar je viens itérer à travers mon très grand objet JSON pour l'empêcher de s'écraser

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é d'autres fois dans ce fil) sauf si vous avez un grand objet, cela devrait aussi fonctionner - assurez-vous juste de le construire pour répondre à vos besoins - j'en avais besoin pour avoir un nom que le tableau

4
répondu Sam 2017-05-23 11:47:34

personnalisés définis pour ce , jusqu'à ce que nous faisons étrange de stringify méthode

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

LIVE http://jsfiddle.net/mailmerohit5/y78zum6v /

3
répondu Rohit Kumar 2015-10-12 09:57:45

const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);
3
répondu Arvind Audacious 2017-05-23 12:54:01

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

2
répondu Subroto Biswas 2016-11-28 03:39:40

il suffit de Copier et de pase

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
});
2
répondu Subroto Biswas 2016-11-28 03:42:50

vous pouvez utiliser la fonction native stringify comme ceci

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

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

console.log(jsonString) // {"name":"binchen"}
1
répondu Alongkorn Chetasumon 2016-10-14 10:37:56

si vous voulez obtenir la valeur des propriétés json au format string utilisez la manière 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
répondu KARTHIKEYAN.A 2016-11-29 15:10:30

définir l'objet

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

};

puis le convertir en chaîne en utilisant ce code

strObj= JSON.stringify(obj);

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

console.log(strObj);
1
répondu nada diaa 2017-10-28 00:08:45

il vous suffit d'ajouter ce code ci-dessous

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

0
répondu ubastosir 2017-12-22 12:36:35

pour déboguer dans Node Js vous pouvez utiliser util.inspecter () . Il fonctionne mieux avec des références circulaires.

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
0
répondu Pavel Netesa 2018-03-02 16:31:07

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

0
répondu Mitesh Panchal 2018-03-27 07:07:24

les remplacements JSON existants où trop pour moi, donc j'ai écrit ma propre fonction. Cela semble fonctionner, mais j'ai pu manquer plusieurs cas de bordures (qui ne se produisent pas dans mon projet). Et ne fonctionnera probablement pas pour tous les objets préexistants, seulement pour les données faites par soi-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;
}
0
répondu Hauke 2018-05-30 09:40:14
So in order to convert a js object to JSON String: 

la syntaxe simple pour convertir un objet en chaîne est

JSON.stringify(value)

la syntaxe complète est: JSON.stringify(valeur[, remplacement[, de l'espace]])

voyons quelques exemples simples. Notez que toute la chaîne obtient les guillemets doubles et toutes les données de la chaîne est échappé si 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"}"*/
0
répondu Rahul Choudhary 2018-10-03 05:56:31

Ce que vous voulez, c'est :

var yourObject = {a : "string", b : 2 };
Json.Stringify(yourObject);

dans les deux cas, si vous voulez une jolie impression, vous devez cocher la case: Comment puis-je imprimer JSON en utilisant JavaScript?

plus d'informations sur JSON stringify/parse.

-1
répondu Tiago Loureiro 2018-08-09 15:05:07

si vous avez une chaîne json et qu'elle n'est pas enveloppée de [] alors enveloppez-la d'abord

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);

ou

var jsonobj = eval('(' + str + ')');
console.log(jsonobj);
-19
répondu Bhaumik Mehta 2014-11-16 06:13:14