function (data) {
//add values based on activity type
//data = JSON.parse(data);
//alert(abc.Phone1);
alert(data.myName)
alert(data.toString());
if (activityType == "Phone") {
}
return;
},
Comme vous pouvez voir cette fonction de rappel de $.ajax
en prenant JSON
les données du contrôleur.
Par exemple:
[{"name":"myName" ,"address": "myAddress" }]
Dans ce cas, ma première alerte me donnant un message indéfini et une deuxième/troisième alerte affiche:
[{"name":"myName" ,"address": "myAddress" }]
Comment puis-je accéder à valeur par nom afin que ma première alerte soit renseignée avec myName
qui est la valeur de name
?
Au lieu d’analyser JSON, vous pouvez procéder comme suit:
$.ajax({
..
dataType: 'json' // using json, jquery will make parse for you
});
Pour accéder à une propriété de votre JSON, procédez comme suit:
data[0].name;
data[0].address;
Pourquoi vous avez besoin de data[0]
parce que les données sont un tableau, vous avez donc besoin de data[0]
(premier élément) pour récupérer le contenu, ce qui vous donne un objet {"name":"myName" ,"address": "myAddress" }
.
Et pour accéder à la propriété d'une règle d'objet est:
Object.property
ou parfois
Object["property"] // in some case
Donc vous avez besoin
data[0].name
et ainsi de suite pour obtenir ce que vous voulez.
set dataType: json
vous devez ensuite les analyser avec $.parseJSON()
et récupérer les données comme ci-dessus.
Le JSON que vous recevez est en chaîne. Vous devez le convertir en objet JSON. Vous avez commenté la ligne de code la plus importante.
data = JSON.parse(data);
Ou si vous utilisez jQuery
data = $.parseJSON(data)
Si votre réponse ressemble à {'customer':{'first_name':'John','last_name':'Cena'}}
var d = JSON.parse(response);
alert(d.customer.first_name); // contains "John"
Merci,
Tu devrais faire
alert(data[0].name); //Take the property name of the first array
et pas
alert(data.myName)
jQuery devrait pouvoir détecter le type de données pour vous même si vous ne le définissez pas, il n'est donc pas nécessaire d'utiliser JSON.parse.
jouer du violon ici
Essayez ce code ..
function (data) {
var json = jQuery.parseJSON(data);
alert( json.name );
}
Je pense que vous devriez mentionner dataType: 'json'
dans ajax config et accéder à cette valeur:
data[0].name
Vous voudrez peut-être essayer cette approche:
var str ="{ "name" : "user"}";
var jsonData = JSON.parse(str);
console.log(jsonData.name)
//Array Object
str ="[{ "name" : "user"},{ "name" : "user2"}]";
jsonData = JSON.parse(str);
console.log(jsonData[0].name)
Voici un conseil amical. Utilisez quelque chose comme Outils de développement Chrome ou Firebug pour Firefox afin d'inspecter vos appels Ajax et vos résultats.
Vous voudrez peut-être aussi investir un peu de temps dans la compréhension d’une bibliothèque d’aide telle que nderscore , qui complète jQuery et vous offre plus de 60 fonctions utiles pour manipuler des objets de données avec JavaScript.