web-dev-qa-db-fra.com

Accès aux éléments de l'objet JSON sans connaître les noms des clés

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
25
Radu

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]);
}
57
Ates Goral

C'est ce que vous cherchez?

var data;
for (var key in data) {
   var value = data[key];
   alert(key + ", " + value);
}
9
Xenethyl

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)
   }
3
KARTHIKEYAN.A

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é.

2
Bhaumik Mehta
{"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];
0
Shivam Chhetri