مетод getJSON() jQuery ajax
مثال
با استفاده از درخواست AJAX دادههای JSON را دریافت کنید و نتایج را نمایش دهید:
$("button").click(function(){ $.getJSON("demo_ajax_json.js",function(result){ $.each(result, function(i, field){ $("div").append(field + " "); ); ); );
تعریف و استفاده
با استفاده از درخواست HTTP GET دادههای JSON را بارگذاری میکند.
در jQuery 1.2، میتوانید از فرم JSONP برای بارگذاری دادههای JSON از دامنههای دیگر استفاده کنید، مانند "myurl?callback=?". jQuery به طور خودکار ? را با نام صحیح تابع جایگزین میکند تا تابع بازگشتی را اجرا کند. توجه داشته باشید: کدهای بعدی در این خط قبل از اجرای تابع بازگشتی اجرا میشوند.
نحوه استفاده
jQuery.getJSON(url,data,success(data,status,xhr)})
پارامترها | توضیحات |
---|---|
url | ضروری است. تعریف میکند که کدام URL درخواست ارسال میشود. |
data | اختیاری است. تعریف داده شده که دادههای همراه با درخواست به سرور ارسال میشود. |
success(data,status,xhr)} |
اختیاری. تابعی که باید در صورت موفقیت درخواست اجرا شود را مشخص میکند. پارامترهای اضافی:
|
شرح جزئی
این یک نسخه کوتاه از تابع Ajax است، معادل:
$.ajax({ url: url, data: data, success: callback, dataType: json );
دادههایی که به سرور ارسال میشوند میتوانند به عنوان یک رشته به URL اضافه شوند. اگر data اگر مقدار پارامتر یک شیء (نقشه) باشد، قبل از اضافه کردن به URL به یک رشته تبدیل شده و کدگذاری URL انجام میشود.
به callback دادههای بازگشتی میتواند یک شیء JavaScript باشد یا یک آرایه با ساختار JSON و با استفاده از روش $.parseJSON() تجزیه شود.
مثال
JSON دادههای test.js را بارگذاری کنید و یک فیلد name در دادههای JSON را نمایش دهید:
$.getJSON("test.js", function(json){ alert("JSON Data: " + json.users[3].name); );
مثالهای بیشتر
مثال 1
4 عکس جدید از فلیکر با استفاده از API JSONP بارگذاری کنید:
کد HTML:
<div id="images"></div>
کد jQuery:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne? tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){ $.each(data.items, function(i,item){ $("<img/>").attr("src", item.media.m).appendTo("#images"); if ( i == 3 ) return false; ); );
مثال 2
JSON دادههای test.js را بارگذاری کنید، پارامترهای اضافی را اضافه کنید و دادههای یک فیلد name در دادههای JSON را نمایش دهید:
$.getJSON("test.js", { name: "Bill", time: "2pm" }, function(json){ alert("JSON Data: " + json.users[3].name); );