Voici mon json:
{"d":{"key1":"value1",
"key2":"value2"}}
Existe-t-il un moyen d'accéder aux clés et aux valeurs (en javascript) de ce tableau sans savoir quelles sont les clés?
La raison pour laquelle mon json est structuré comme ceci est que la méthode Web que j'appelle via jquery renvoie un dictionnaire. S'il est impossible de travailler avec ce qui précède, que dois-je changer sur la façon dont je renvoie les données?
Voici un aperçu de ma méthode Web:
<WebMethod()> _
Public Function Foo(ByVal Input As String) As Dictionary(Of String, String)
Dim Results As New Dictionary(Of String, String)
'code that does stuff
Results.Add(key,value)
Return Results
End Function
Vous pouvez utiliser le for..in
construction pour parcourir les propriétés arbitraires de votre objet:
for (var key in obj.d) {
console.log("Key: " + key);
console.log("Value: " + obj.d[key]);
}
C'est ce que vous cherchez?
var data;
for (var key in data) {
var value = data[key];
alert(key + ", " + value);
}
Utilisez la boucle pour obtenir le même résultat.
var dlist = { country: [ 'ENGLAND' ], name: [ 'CROSBY' ] }
for(var key in dlist){
var keyjson = dlist[key];
console.log(keyjson)
}
En utilisant le mot "b", vous utilisez toujours le nom de clé.
var info = {
"fname": "Bhaumik",
"lname": "Mehta",
"Age": "34",
"favcolor": {"color1":"Gray", "color2":"Black", "color3":"Blue"}
};
Regardez l'extrait ci-dessous.
for(key in info) {
var infoJSON = info[key];
console.log(infoJSON);
}
Le résultat serait,
Bhaumik
Mehta
Object {color1: "Gray", color2: "Black", color3: "Blue"}
Vous ne voulez pas que cette dernière ligne s'affiche? Essayez le code suivant:
for(key in info) {
var infoJSON = info[key];
if(typeof infoJSON !== "object"){
console.log(infoJSON);
}
}
Cela éliminera Object {color1: “Gray”, color2: “Black”, color3: “Blue”}
de s'afficher dans la console.
Maintenant, nous devons parcourir la variable infoJSON pour obtenir la valeur du tableau. Regardez la paix de code entière suivante.
for(key in info) {
var infoJSON = info[key];
if (typeof infoJSON !== "object"){
console.log(infoJSON);
}
}
for(key1 in infoJSON) {
if (infoJSON.hasOwnProperty(key1)) {
if(infoJSON[key1] instanceof Array) {
for(var i=0;i<infoJSON[key1].length;i++) {
console.log(infoJSON[key1][i]);
}
} else {console.log(infoJSON[key1]);}
}
}
Et maintenant, nous avons obtenu le résultat
Bhaumik
Mehta
Gray
Black
Blue
Si nous utilisons le nom ou l'id de la clé, il est très facile d'obtenir les valeurs de l'objet JSON, mais ici, nous obtenons nos valeurs sans utiliser le nom ou l'id de la clé.
{"d":{"key1":"value1",
"key2":"value2"}}
Pour accéder à la première écriture de clé:
let firstKey=Object.keys(d)[0];
Pour accéder à la valeur de la première écriture de clé:
let firstValue= d[firstKey];