PDA

View Full Version : مشکل با json در jQuery.Ajax



masudafsar
جمعه 29 فروردین 1393, 19:56 عصر
سلام
من یه خروجی json رو از طریق ajax لود میکنم ولی نمی تونم به المنت های اون دسترسی داشته باشم.
این فایل json
{
"title" : "Cars List",
"count" : "5",
"list" : {
"item" : "Ford Mustang",
"item" : "BMW Z4",
"item" : "Toyota Supra",
"item" : "Mazda RX7"
}
}


این هم کد جاوا اسکریپت
$("#load").click(function() {
$.ajax({
url: "http://localhost/json/",
type: "json",
success: function(data) {
alert(data.title);
}
});
});

alireza_s_84
جمعه 29 فروردین 1393, 21:22 عصر
سلام
من یه خروجی json رو از طریق ajax لود میکنم ولی نمی تونم به المنت های اون دسترسی داشته باشم.
این فایل json
{
"title" : "Cars List",
"count" : "5",
"list" : {
"item" : "Ford Mustang",
"item" : "BMW Z4",
"item" : "Toyota Supra",
"item" : "Mazda RX7"
}
}


این هم کد جاوا اسکریپت
$("#load").click(function() {
$.ajax({
url: "http://localhost/json/",
type: "json",
success: function(data) {
alert(data.title);
}
});
});

چون json شما یک رشته معتبر نیست. شما اومدی توی قسمت list چندبار کلید item تعریف کردی. در واقع رشته شما باید به این شکل باشه:
حالت اول:

{
"title" : "Cars List",
"count" : "5",
"list" : [
{"item" : "Ford Mustang"},
{"item" : "BMW Z4"},
{"item" : "Toyota Supra"},
{"item" :"Mazda RX7"}
]
}


حالت دوم:

{
"title" : "Cars List",
"count" : "5",
"list" : [
"Ford Mustang",
"BMW Z4",
"Toyota Supra",
"Mazda RX7"]
}

masudafsar
جمعه 29 فروردین 1393, 23:19 عصر
من رشته json رو از آرایه ای در PHP می سازم، خودم ننوشتم:

$data = array(
"title" => "Cars List",
"count" => "4",
"list" => array(
"Ford Mustang",
"BMW Z4",
"Toyota Supra",
"Mazda RX7"
)
);

echo json_encode($data);

خروجی:
{
"title" : "Cars List",
"count" : "4",
"list" : ["Ford Mustang", "BMW Z4", "Toyota Supra", "Mazda RX7"]
}


ولی با کد زیر نمی تونم به title دسترسی داشته باشم:
$.ajax({
url: "http://localhost/json/",
type: "json",
success: function(data) {
alert(data.title);
}
});

masudafsar
جمعه 29 فروردین 1393, 23:49 عصر
خیلی از alireza_s_84 ممنون. فعلا مشکل حل شد.

متاسفانه تو کد jquery اشتباه داشتم
درستش:
$.ajax({
url: "http://localhost/json/",
dataType: "json",
success: function(data) {
alert(data.title);
}
});

!!!: قسمت dataType: "json" تغییر کرده.