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;
},
ご覧のとおり、この$.ajax
のコールバック関数は、コントローラーからJSON
データを取得します。
例えば:
[{"name":"myName" ,"address": "myAddress" }]
この場合、未定義の2つ目または3つ目のアラートポップアップが表示されます。
[{"name":"myName" ,"address": "myAddress" }]
最初のアラートがmyName
の値であるname
で埋められるように、名前で値にアクセスするにはどうすればよいですか?
JSONを解析する代わりに、次のようにできます。
$.ajax({
..
dataType: 'json' // using json, jquery will make parse for you
});
JSONのプロパティにアクセスするには、次を実行します。
data[0].name;
data[0].address;
データが配列であるためにdata[0]
が必要な理由は、その内容を取得するにはdata[0]
(最初の要素)が必要であり、オブジェクト{"name":"myName" ,"address": "myAddress" }
が提供されるためです。
そして、オブジェクトルールのプロパティにアクセスするには:
Object.property
または時々
Object["property"] // in some case
だからあなたが必要
data[0].name
など、必要なものを取得します。
dataType: json
を設定したら、$.parseJSON()
を使用してそれらを解析し、上記のようなデータを取得する必要があります。
受信しているJSONは文字列です。 JSONオブジェクトに変換する必要があります。最も重要なコード行をコメントしました。
data = JSON.parse(data);
または、jQueryを使用している場合
data = $.parseJSON(data)
応答が{'customer':{'first_name':'John','last_name':'Cena'}}
のような場合
var d = JSON.parse(response);
alert(d.customer.first_name); // contains "John"
おかげで、
やったほうがいい
alert(data[0].name); //Take the property name of the first array
ではなく
alert(data.myName)
jQueryは、JSON.parseを必要としないように設定しなくても、dataTypeを探知できるはずです。
ここでいじる
このコードを試してください..
function (data) {
var json = jQuery.parseJSON(data);
alert( json.name );
}
私はあなたがajaxの設定でdataType: 'json'
を言及し、その値にアクセスする必要があると思う:
data[0].name
このアプローチを試してみてください。
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)
これはフレンドリーなアドバイスです。 Firefoxで Chrome Developer Tools または Firebug のようなものを使用して、Ajaxの呼び出しと結果を検査します。
nderscore のようなヘルパーライブラリを理解するために時間をかけることもできます。これはjQueryを補完し、JavaScriptでデータオブジェクトを操作するための60以上の便利な機能を提供します。