Je me demandais comment créer un objet JSON (JS), puis le cloner.Comment créer et cloner un objet JSON?
Répondre
Comment créer un objet JSON dans javascript/jquery?
Il n'y a rien comme un objet JSON . JSON signifie JavaScript Object Notation et est fondamentalement une chaîne qui code des informations similaires aux littéraux d'objet de JavaScript.
Vous pouvez cependant créer un tel encodage (qui entraînerait une chaîne ) avec JSON.stringify(object)
, voir JSON in JavaScript. Vous pouvez également créer une telle chaîne manuellement, mais elle est très sujette aux erreurs et je ne la recommande pas.
Comment cloner un objet JSON dans javascript/jquery?
Comme il est juste une chaîne:
var jsonString2 = jsonString;
Je ne peux pas plus travailler avec des tableaux javascript
JSON est un format d'échange données, il est une structure de données que vous pouvez utiliser dans une application.
Peut-être que vous voulez en savoir plus sur JSON, objects à JS et arrays à JS.
La deuxième réponse n'est pas vraie. L'opérateur "=" ne clone aucun objet mais transmet la référence. – Reinhard
@Reinhard: Je n'ai jamais prétendu que c'était le cas. ** JSON ** dans JS n'existe que sous forme de ** chaîne **. Et puisque les chaînes sont immuables, cloner une chaîne est aussi simple que de l'assigner à une variable différente. Bien que je suis d'accord avec le recul, le PO peut avoir parlé d'objets JavaScript. –
@FelixKling: Il s'agit alors d'une réponse à une question invalide. Il s'ensuit que ce n'est pas une réponse. Je pense qu'il serait préférable de supprimer cette ligne pour ne pas confondre lecteur par lecteur et répandre la sagesse. –
C'est un problème que j'ai souvent rencontré lors de l'analyse de JSON et de sa réutilisation plusieurs fois dans le code. Et vous voulez éviter de ré-analyser chaque fois à partir de la chaîne JSON d'origine, ou d'aller de la manière serialize/parse
qui est le moyen le moins efficace. Par conséquent, dans les cas où vous souhaitez ajuster l'objet analysé tout en conservant l'original inchangé, utilisez la fonction suivante sur le serveur (NodeJs) ou sur le code javascript du client. La fonction jQuery clone
est moins efficace, car ils traitent les cas pour les fonctions, etc., regexp La fonction ci-dessous, ne traite les types pris en charge JSON (null, non défini, nombre, chaîne, tableau et objet):
function cloneJSON(obj) {
// basic type deep copy
if (obj === null || obj === undefined || typeof obj !== 'object') {
return obj
}
// array deep copy
if (obj instanceof Array) {
var cloneA = [];
for (var i = 0; i < obj.length; ++i) {
cloneA[i] = cloneJSON(obj[i]);
}
return cloneA;
}
// object deep copy
var cloneO = {};
for (var i in obj) {
cloneO[i] = cloneJSON(obj[i]);
}
return cloneO;
}
C'est ce que je fais et il fonctionne comme un charme
if (typeof JSON.clone !== "function") {
JSON.clone = function(obj) {
return JSON.parse(JSON.stringify(obj));
};
}
Est-ce que cela fonctionne également pour
Q1: Comment créer un objet JSON en javascript/jquery?
Création d'un objet Javascript est si simple:
var user = {}; // creates an empty user object
var user = {firstName:"John", lastName:"Doe"}; // creates a user by initializing
// its firstName and lastName properties.
Après la création, vous pouvez ajouter des champs supplémentaires à votre objet comme user.age = 30;
.
Si vous avez l'objet en tant que chaîne JSON, vous pouvez le convertir en objet JSON à l'aide de la fonction JSON.parse(yourJsonString)
intégrée ou de la fonction $.parseJSON(yourJsonString)
de jQuery.
Q2: Comment cloner un objet JSON dans javascript/jquery?
Ma façon de cloner des objets JSON est extend fonction de jQuery. Par exemple, vous pouvez générer un clone de votre objet utilisateur comme ci-dessous:
var cloneUser = $.extend(true, {}, {firstName:"John", lastName:"Doe"});
Le premier paramètre indique si l'objet clone sera une copie peu profonde ou profonde de l'original (voir Object copy sur le wiki).
Pour voir d'autres alternatives de clonage JSON, vous pouvez lire l'article this.
'JSON.parse' renvoie un' Object' (voir: [MDN] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Return_value)), pas un "Objet JSON", qui AFAIK n'existe pas. (Ceci n'est pas un problème, mais c'est un point de confusion pour de nombreux débutants, donc il peut être bon de le corriger) – StubbornShowaGuy
Il suffit de faire
var x = {} //some json object here
var y = JSON.parse(JSON.stringify(x)); //new json object here
Au ES6. Object.assign est un bon moyen de le faire.
newjsonobj = Object.assign({}, jsonobj, {})
Les éléments du premier argument muter l'objet existant, et le troisième argument des changements dans le nouvel objet retourné.
Dans ES7, il est proposé d'utiliser l'opérateur de répartition.
newjsonobj = {...jsonobj}
Cela crée un clone peu profond: Toute modification des valeurs dans le premier objet JSON affectera le clone (et vice versa), si ces valeurs sont quelque chose de mutable comme des objets ou des tableaux. par exemple. 'var a = {arr: [1,2,3]}; var b = Object.assign ({}, a, {}); b.arr [0] = 4; console.log (a.arr); 'imprime' [4, 2, 3] 'au lieu de' [1, 2, 3] 'comme prévu. – thenickdude
- 1. Comment cloner un objet js?
- 2. Comment pouvez-vous cloner un objet WPF?
- 3. Comment "cloner" un objet dans un objet de sous-classe?
- 4. Comment cloner un objet dans Flex?
- 5. Que signifie cloner() un objet?
- 6. Créer un objet pour être attendu Json
- 7. Comment créer cet objet JSON dans ruby?
- 8. Utiliser Colis pour cloner un objet?
- 9. comment créer un objet json dans vb.net 2005
- 10. Objet DOM cloner widget Javascript
- 11. Comment cloner et déployer un commit historique
- 12. Comment cloner un CharArrayWriter?
- 13. Comment cloner rapidement un xib et un viewcontroller?
- 14. Objet JSON XHR et fermetures
- 15. Comment convertir un objet en représentation JSON
- 16. Comment trier un objet JSON dans Java?
- 17. Comment convertir un objet Ruby à JSON
- 18. Comment cloner une image tamponnée
- 19. Comment cloner un UltraGridRow (Infragistics)?
- 20. Rails: Comment envoyer un objet json à un autre serveur?
- 21. Cloner un champ sans le cloner aussi
- 22. trier un objet JSON complexe
- 23. Tri un objet JSON LINQ
- 24. comment identifier un objet json ou un tableau json à partir d'un texte d'analyse json?
- 25. jQuery JSON retournant [Objet objet]
- 26. Comment cloner un graphique en C#?
- 27. Comment créer un objet personnalisé avec un objet personnalisé?
- 28. convertir JSON en un objet/dictionnaire/dynamique
- 29. Comment créer et gérer un objet UIWebView entièrement en code?
- 30. sérialisation et désérialisation d'un objet json via Lift-JSON
Pourquoi * "ne peut plus travailler avec javascript array" *? JSON est juste la syntaxe littérale de tableau et d'objet de Javascript. Si vous aimez la syntaxe JSON, vous devriez vous sentir comme chez vous lorsque vous utilisez des tableaux et des objets dans Javascipt. –
Prenez le temps de lire cet article: [Il n'y a pas d'objet "JSON"] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ – PetersenDidIt