‎‎متد تجزيه جسون جاواسكريپتJS JSON.parse( ) -‎

Previous >    <Next  

‎استفاده رايج ازJSON براي تبادل داده با يك وب سروراست . هنگام دريافت داده از يك ‎وب سرور، داده ها هميشه يك رشته هستند.

‎متد‎JSON.parsr( )‎ داده هاي در يافتي را تجزيه وبه شئ جاوااسكريپت ‎تبديل مي نمايد.

‎‎مثال ـ تجزيه جسون‎(Parsing JSON)

‎‎تصور كنيد كه متن زير از سرور دريافت شده است

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

‎براي تبديل آن به شئ جاوااسكريپت از متد‎JSON.parse( )‎مطابق ‎زير استفاده ميكنيم

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

‎‎مطمئن شويد كه متن با فرمت جسن باشد، در غير اينحالت با يك خطاي نحو مواجه مي شويد.

‎‎استفاده از شئ جاوااسكريپت در صفحه مطابق زير:

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = obj.name;
</script >

--(go to editor for change code and run)

‎‎آرايه جسونيArray as JSON -‎

‎هنگام استفاده از متد‎JSON.parse( )‎ براي تجزيه آرايه جسوني ‎در جاوااسكريپت، بجاي شئ يك آرايه جاوااسكريپتي برگشت ميدهد.

‎‎مثال ـ تجزيه آرايه جسوني

const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);

--(go to editor for change code and run)

‎‎استثناء در تجزيه تاريخExceptions Parsing Dates -‎

‎شئ تاريخ در داده جسوني مجاز نيست .اگر تاريخ لازم است ، آنرا بصورت رشته در جسون بگنجانيد. ‎بعدا ميتوانيد آنرا بيك شئ تاريخ تبديل كنيد.

‎‎مثال ـ تبديل يك رشته به تاريح

const text = '{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

--(go to editor for change code and run)

‎يا ميتوان از پارامتر دوم متد‎JSON.parse( )‎ بنامreviver استفاده كرد .در اين ‎پارامتر تابعي است كه هر ويژگي را قبل از برگرداندن مقدار بررسي ميكند.

‎‎مثال ـ تبديل رشته تاريخ با استفاده از تابع درreviver

const text = '{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const 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;

--(go to editor for change code and run)

‎‎توابع تجزيهParsing Functions -‎

‎توابع در داده جسون مجاز نيستند .اگر لازم است كه در آنها باشند، بايد بعنوان رشته قرار ‎گيرند .ميتوان آن رشته را بعدا بيك تابع تبديل كرد.

‎‎مثال ـ تبديل رشته بيك تابع

const text = '{"name":"John", "age":"function () {return 30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();

--(go to editor for change code and run)

‎بايد از گنجاندن تابع در داده جسون خودداري كرد .توابع دامنه خود را از دست ميدهند، و براي

‎‎تبديل مجدد آنها بايد از تابع‎eval( )‎ استفاده كرد .


Previous >    <Next