()parse در JSON

()Parse در JSON

استفاده معمول از JSON برای تبادل اطلاعات به / از یک وب سرور است.
هنگام دریافت داده ها از یک وب سرور، داده ها همیشه یک رشته هستند.
داده ها را با JSON.parse () تجزیه می شوند و داده ها به یک شیء جاوا اسکریپت تبدیل می شوند.

مثال- تجزیه JSON

تصور کنید ما این متن را از یک وب سرور دریافت کردیم:

'{ "name":"John", "age":30, "city":"New York"}'

از جاوا اسکریپت JSON.parse () برای تبدیل متن به یک جاوا اسکریپت استفاده کنید:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

 

اطمینان حاصل کنید که متن در قالب JSON نوشته شده است، در غیر اینصورت یک خطای ساختاری دریافت خواهید کرد.

از شیء جاوا اسکریپت در صفحه خود استفاده کنید:

تجزیه JSON
 <p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = obj.name + ", " + obj.age;
</script> 
مشاهده مثال

JSON از سوی سرور

شما می توانید با استفاده از درخواست AJAX JSON را از سرور درخواست کنید
تا زمانی که پاسخ از سرور در قالب JSON نوشته شده است، می توانید رشته را به یک جاوا اسکریپت تجزیه کنید.

XMLHttpRequest برای دریافت داده
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send(); 
مشاهده مثال

آرایه به عنوان JSON

هنگام استفاده از JSON.parse () در JSON مشتق شده از یک آرایه، روش یک جاوا اسکریپت را به جای شی یک جاوا اسکریپت باز می کند.

آرایه به عنوان JSON
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        var myArr = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myArr[0];
    }
};
xmlhttp.open("GET", "json_demo_array.txt", true);
xmlhttp.send(); 
مشاهده مثال

استثنا

تجزیه تاریخ

اشیای تاریخ در JSON مجاز نیستند.
اگر شما نیاز به یک تاریخ دارید، آن را به عنوان یک رشته بنویسید.
بعدا می توانید آن را به یک شی تاریخ تبدیل کنید:

تبدیل رشته به تاریخ در json
var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth; 
مشاهده مثال

یا، شما می توانید از پارامتر دوم، از عملکرد JSON.parse ()، به نام reviver استفاده کنید.

پارامتر reviver یک تابع است که قبل از بازگشت مقدار هر مقدار را بررسی می کند.

تبدیل رشته با reviver
var text = '{ "name":"John", "birth":"1986-12-14", "city":"New York"}';
var obj = JSON.parse(text, function (key, value) {
    if (key == "birth") {
        return new Date(value);
    } else {
        return value;
    }});

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth; 
مشاهده مثال

تجزیه توابع

توابع در JSON مجاز نیستند
اگر شما نیاز به یک تابع دارید، آن را به عنوان یک رشته بنویسید.
بعدا می توانید آن را به یک تابع تبدیل کنید:

تبدیل رشته به تابع
var text = '{ "name":"John", "age":"function () {return 30;}", "city":"New York"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

document.getElementById("demo").innerHTML = obj.name + ", " + obj.age(); 
مشاهده مثال

 

شما باید  استفاده از توابع در JSON اجتناب کنید، توابع دامنه خود را از دست می دهند و شما مجبورید از eval () برای تبدیل آنها به توابع استفاده کنید.

پشتیبانی مرورگرها

عملکرد JSON.parse () در تمام مرورگرهای اصلی و در آخرین استاندارد ECMAScript (جاوا اسکریپت) شامل می شود:

برای مرورگرهای قدیمی، یک کتابخانه جاوا اسکریپت در https://github.com/douglascrockford/JSON-js موجود است.

نظر شما

لطفا نام و نام خانوادگی خود را وارد کنید
لطفا ایمیل خود را وارد کنید لطفا ایمیل صحیح وارد کنید.
لطفا متن نظر خود را وارد کنید
>

نظرات

مهشید ملاقلی پور خیلی زیاد به این درس ها نیاز داشتم. امیدوارم موفق باشید

مقالات و دروس

به خبرنامه مدرسه طراحی وب ایران (وب مهراز) بپیوندید.

لطفا شماره همراه صحیح وارد کنید.
لطفا ایمیل صحیح وارد کنید.

مقالات مرتبط