Comment renommer JSON clé
J'ai un objet JSON avec le contenu suivant:
[
{
"_id":"5078c3a803ff4197dc81fbfb",
"email":"[email protected]",
"image":"some_image_url",
"name":"Name 1"
},
{
"_id":"5078c3a803ff4197dc81fbfc",
"email":"[email protected]",
"image":"some_image_url",
"name":"Name 2"
}
]
Je veux changer la "_id" clé "id" de sorte qu'il deviendrait
[
{
"id":"5078c3a803ff4197dc81fbfb",
"email":"[email protected]",
"image":"some_image_url",
"name":"Name 1"
},
{
"id":"5078c3a803ff4197dc81fbfc",
"email":"[email protected]",
"image":"some_image_url",
"name":"Name 2"
}
]
Comment pourrais-je le faire avec Javascript, jQuery ou Ruby, Rails?
Grâce.
- Parser le JSON, modifiez la structure de données en conséquence et la convertir en JSON. Les pointeurs: stackoverflow.com/questions/4935632/..., stackoverflow.com/questions/1826727/..., stackoverflow.com/questions/2295496/..., stackoverflow.com/questions/3183786/....
Vous devez vous connecter pour publier un commentaire.
Cela change json à:
Car l'ordre n'a pas de sens dans une paire nom/valeur dans le JSON, c'est le même que celui de votre résultat souhaité.
Dans ce cas, il serait plus facile d'utiliser des chaînes de caractères à remplacer. La sérialisation JSON ne fonctionne pas bien parce que _id deviendra le nom de la propriété de l'objet et la modification d'un nom de propriété n'est pas une simple tâche (au moins pas dans la plupart des langues, il n'est pas si mauvais en javascript). Au lieu de faire juste;
Comme mentionné par evanmcdonnal, la solution la plus simple est de traiter cela comme une chaîne de caractères au lieu de JSON,
JS:
Ceci permet de convertir des donné données JSON à la chaîne et remplacer "_id" à la "id" puis de le reconvertir à la format JSON. Mais j'ai utilisé
split
etjoin
au lieu dereplace
, parce quereplace
remplacera uniquement la première occurrence de la chaîne.Si vous souhaitez renommer toutes les occurrences de certaines touches, vous pouvez utiliser une regex avec la g option. Par exemple:
maintenant, nous avons le json dans un format de chaîne dans str.
Remplacer toutes les occurrences de "_id" à la "id" utilisation des regex avec la g option:
et retour au format json:
maintenant que nous avons notre json avec le voulait le nom de la clé.
Si vous objet ressemble à ceci:
Probablement la méthode la plus simple en JavaScript est:
Comme un résultat, vous obtiendrez:
Si vous voulez le faire de façon dynamique, par exemple, vous avez un tableau qui vous voulez appliquer comme une clé pour objet JSON:
votre Tableau sera comme :
Maintenant, vous avez un Tableau JSON comme:
Votre résultante Tableau JSON sera comme :
Est possible, à l'aide de la machine
Exemple: https://codepen.io/lelogualda/pen/BeNwWJ
Par l'aide de la carte de fonction vous pouvez le faire.
Veuillez consulter ci-dessous le code.
Essayez ceci: