12
votes

Accéder à la propriété JSON ou JS à l'aide de la chaîne

J'ai un tableau JSON comme ceci: xxx pré>

Je veux mettre à jour cela en passant l'identifiant, le nom de la colonne et la nouvelle valeur à une fonction: p>

 _htaItems[x].description = 'New Value'


9 commentaires

Vous avez un tableau JavaScript, pas JSON.


Dupliqué possible de Comment utiliser une variable valeur pour la clé d'un autre objet?


@jagdipa Felix a raison - pas de Json ici. Vous avez un tableau construit à l'aide de la syntaxe littérale Array contenant des objets construits avec la syntaxe littérale d'objet.


@Felix - Il s'agit d'une duplicaturelle possible aux questions diverses, mais je ne pouvais pas en trouver rapidement une notation de support carré plus d'un niveau de profondeur.


@Jaaulde: Ne fait pas vraiment une différence.


@Felix - Je ne discute pas que, en indiquant simplement pourquoi j'ai répondu plutôt que de copier marqué et soulignez que vous avez trouvé ce que je ne pouvais pas.


@Jaaulde: Ah je vois, désolé. Et pas de soucis, parfois il est étonnamment difficile de trouver un bon duplicata, bien que vous savez qu'il est là;)


Merci pour les réponses. Je ne sais pas quelle est la différence entre ce qui précède et Json est, alors je vais le découvrir. Une question connexe - est-il un moyen plus facile d'arriver à l'index des articles dont j'ai besoin sans boucle si le tableau?


@JagDIPA: JSON est un format d'échange de données qui looks aime la syntaxe littérale d'objet JavaScript, mais ce n'est pas le cas. Json ressemble plus à XML.


4 Réponses :


1
votes

_htaitems [x] [colleName] = "nouvelle valeur"; Ou ai-je mal compris?


1 commentaires

Pour être juste, c'est probablement le moment où il vous fallait appuyer sur le bouton "Style de code";)



0
votes

Vous devez utiliser une notation de support carré, tout comme vous l'avez fait pour l'index de l'arrayage:

_htaItems[i][columnName] = newValue;


1 commentaires

Bien c'était une garnase facile: D



0
votes

juste faire _htauite [i] [colleName] = NewValue; . Il changera la propriété spécifiée dans colleName sur NewValue .


0 commentaires

27
votes

En JavaScript, vous pouvez accéder à une propriété d'objet avec notation littérale: xxx pré>

ou avec notation entre crochets à l'aide d'une chaîne pour le nom de la propriété: p>

s = "description";
_htaItems[x][s] = 'New Value';


2 commentaires

Quelle explication de NA Elequent! J'ai lu des milliers d'articles et je ne pouvais pas obtenir la réponse. Il suffit de sauver ma journée. Merci!


Belle explication! Merci