Réponses:
Tous les navigateurs actuels ont un support JSON natif intégré. Donc, tant que vous ne traitez pas avec des navigateurs préhistoriques comme IE6 / 7, vous pouvez le faire aussi facilement que cela:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
var formattedJSON = JSON.stringify(j, null, 2);
Avec JSON.stringify()
trouvé 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.
replacer
est optionnelle, donc si vous souhaitez toujours utiliser le space
arg que vous mettez null
pour replacer
. Si vous êtes intéressé à utiliser cette fonction pour de jolies impressions, j'ai trouvé cette réponse également utile: stackoverflow.com/a/7220510/857209
Découvrez la manière mise à jour / meilleure par Thomas Frank:
Mise à jour du 17 mai 2008: petit désinfectant ajouté à la méthode toObject. Maintenant, toObject () n'évaluera pas () la chaîne s'il y trouve du code malveillant. 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 stringifiers pour JavaScript. Plus tard, Steve Yen de Trim Path a écrit une belle version améliorée que j'utilise depuis un certain temps. Ce sont mes changements dans la version de Steve que je voudrais partager avec vous. Fondamentalement, ils découlaient de mon souhait de faire le stringifier:
- gérer et restaurer les références cycliques
- inclure le code JavaScript pour les fonctions / méthodes (en option)
- exclure les membres d'objet de Object.prototype si nécessaire.
Vous pouvez utiliser la méthode JSON.stringify () pour convertir un objet JSON en chaîne.
var j={"name":"binchen"};
JSON.stringify(j)
Pour le processus inverse, vous pouvez utiliser la méthode JSON.parse () pour convertir la chaîne JSON en objet JSON.
JSON.stringify(j, null, 4)
vous donnerait JSON embellie au cas où vous auriez besoin d'embellissement aussi
Le deuxième paramètre est le remplaçant. Il peut être utilisé comme filtre où vous pouvez filtrer certaines valeurs clés lors de la chaîne. S'il est défini sur null, il renverra toutes les paires de valeurs clés
Dans angularJS
angular.toJson(obj, pretty);
obj: entrée à sérialiser en JSON.
pretty (facultatif):
si la valeur est true, la sortie JSON contiendra des sauts de ligne et des espaces. Si elle est définie sur un entier, la sortie JSON contiendra autant d'espaces par retrait.
(par défaut: 2)
Si vous utilisez AngularJS, le filtre 'json' devrait le faire:
<span>{{someObject | json}}</span>
JSON.stringify
transforme un objet Javascript en texte JSON et stocke ce texte JSON dans une chaîne.
La conversion est un objet en chaîne
JSON.parse
transforme une chaîne de texte JSON en objet Javascript.
La conversion est une chaîne en objet
var j={"name":"binchen"};
pour en faire une chaîne JSON suivante pourrait être utilisée.
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
Une coutume définie pour cela, jusqu'à ce que nous fassions une étrange méthode de 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);
PRODUCTION
{"name":"binchen","class":"awesome"}
J'avais des problèmes avec stringify à court de mémoire et d'autres solutions ne semblaient pas fonctionner (au moins, je ne pouvais pas les faire fonctionner), c'est quand je suis tombé sur ce fil. Grâce à Rohit Kumar, je viens de parcourir mon très grand objet JSON pour l'empêcher de planter
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 moments dans ce fil), sauf si vous avez un grand objet, cela devrait également fonctionner - assurez-vous de le construire pour répondre à vos besoins - J'avais besoin qu'il ait un nom plus que le tableau
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
vous pouvez utiliser la fonction native stringify comme celle-ci
const j={ "name": "binchen" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
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}'
Pour le débogage dans Node 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));
Les remplacements JSON existants étaient trop pour moi, j'ai donc écrit ma propre fonction. Cela semble fonctionner, mais j'ai peut-être manqué plusieurs cas marginaux (qui ne se produisent pas dans mon projet). Et ne fonctionnera probablement pas pour les objets préexistants, uniquement pour les données auto-créées.
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 syntaxe simple pour convertir un objet en chaîne est
JSON.stringify(value)
La syntaxe complète est: JSON.stringify (valeur [, replacer [, espace]])
Voyons quelques exemples simples. Notez que la chaîne entière obtient des guillemets doubles et toutes les données de la chaîne sont échappées 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"}"*/
Utilisez simplement JSON.stringify
pour effectuer une telle conversion - mais n'oubliez pas que les champs qui ont de la undefined
valeur ne seront pas inclus dans json
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
Le champ remember
«disparaît» de la sortie json
Vous pouvez utiliser la méthode JSON.stringify () pour convertir un objet JSON en chaîne.
var j={"name":"hello world"};
JSON.stringify(j);
Pour reconvertir cette chaîne en objet json, vous pouvez utiliser la méthode JSON.parse ().
utilisation JSON.stringify(param1, param2, param3);
Quel est: -
param1 -> valeur à convertir en JSON
param2 -> fonction pour stringifier à votre façon. Alternativement, il sert de liste blanche pour laquelle les objets doivent être inclus dans le JSON final.
param3 -> Un type de données Number qui indique le nombre d'espaces à ajouter. Le maximum autorisé est de 10.
convertir str => obj
const onePlusStr = '[{"brand": "oneplus"}, {"model": "7T"}]';
const onePLusObj = JSON.parse (onePlusStr);
convertir obj => str
const onePLusObjToStr = JSON.stringify (onePlusStr);
Références de l'analyse JSON dans JS:
JSON.parse (): cliquez sur
JSON.stringify (): cliquez sur
Utilisez la fonction stringify
var j = {
"name":"binchen"
};
var j_json = JSON.stringify(j);
console.log("j in json object format :", j_json);
Bon codage !!!
//use JSON.stringify({})
const stringified = JSON.stringify ({}) // passe l'objet que vous voulez convertir au format chaîne
si vous avez une chaîne json et qu'elle n'est pas encapsulée avec [], 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);
JSON.stringify()
est la méthode que vous recherchez.