web-dev-qa-db-fra.com

Comment obtenir la clé et la valeur JSON?

J'ai écrit le code suivant pour obtenir le résultat JSON du service Web.

function SaveUploadedDataInDB(fileName) {
            $.ajax({
                type: "POST",
                url: "SaveData.asmx/SaveFileData",
                data: "{'FileName':'" + fileName + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var result = jQuery.parseJSON(response.d);
                    //I would like to print KEY and VALUE here.. for example
                    console.log(key+ ':' + value)
                    //Addess : D-14 and so on..
                   }
            });
        }

Voici la réponse de webserviceenter image description here

S'il vous plaît, aidez-moi à imprimer la clé et sa valeur

47
imdadhusen

On dirait que vous récupérez un tableau. Si cela doit toujours se composer d'un seul élément, vous pouvez le faire (oui, c'est à peu près la même chose que la réponse de Tomalak):

$.each(result[0], function(key, value){
    console.log(key, value);
});

Si vous avez plusieurs éléments et que vous souhaitez les parcourir tous, vous pouvez imbriquer $.each():

$.each(result, function(key, value){
    $.each(value, function(key, value){
        console.log(key, value);
    });
});
95
no.good.at.coding
$.each(result, function(key, value) {
  console.log(key+ ':' + value);
});
11
Tomalak

Tout d'abord, je vois que vous utilisez un $.parseJSON() explicite. Si c'est parce que vous sérialisez manuellement JSON sur le serveur, ne le faites pas. ASP.NET va automatiquement sérialiser la valeur de retour de votre méthode avec JSON et jQuery le désérialisera automatiquement pour vous aussi.

Pour parcourir le premier élément du tableau que vous avez là-bas, utilisez le code suivant:

var firstItem = response.d[0];

for(key in firstItem) {
  console.log(key + ':' + firstItem[key]);
}

S'il y a plus d'un élément (c'est difficile à dire à partir de cette capture d'écran), vous pouvez alors passer en boucle sur response.d puis utilisez ce code dans cette boucle externe.

10
Dave Ward