تجزیه JSON در جاوا اسکریپت

mohsen2 هفته قبل
ارسال شده در
javascript

برای تجزیه یک رشته JSON در جاوا اسکریپت می توانید از متد استاندارد JSON.parse() استفاده کنید که از نسخه ES5 به بعد در اکثر مرورگرها و محیط‌های جاوا اسکریپت، از جمله Node.js، در دسترس است. استفاده از این متد بسیار ساده است:

      var response = '{"result":true,"count":1}';
var obj = JSON.parse(response);
console.log(obj.result); // true
console.log(obj.count);  // 1

    

در مرورگرهای بسیار قدیمی مانند IE 6 یا Firefox 3 امکان استفاده از شی JSON وجود ندارد. در این موارد می‌توانید از کتابخانه‌هایی مثل json2.js استفاده کنید که توسط داگلاس کروکفورد، سازنده JSON، نوشته شده است.

اگر با فایل‌های JSON بسیار بزرگ کار می‌کنید، استفاده از JSON.parse() ممکن است به دلیل ماهیت همزمان آن با مشکلات پرفرمنسی مواجه شود. برای حل این مشکل، توصیه می‌شود از کتابخانه‌هایی مانند Oboe.js و clarinet که امکان تجزیه استریم JSON را فراهم می‌کنند، استفاده کنید.

یکی دیگر از راه های پارس کردن جی سان استفاده از eval() است. اما این روش به شدت توصیه نمی‌شود، زیرا eval() می‌تواند کدهای ناخواسته را اجرا کند و مشکلات امنیتی ایجاد کند. به‌ویژه اگر JSON را از منابع خارجی دریافت می‌کنید، بهتر است از JSON.parse() استفاده کنید. اگر مطمئن هستید که داده‌های JSON کاملاً معتبر هستند و به محیط کنترل شده‌ای دسترسی دارید، می‌توانید از eval() استفاده کنید:

      var strJSON = '{"result":true,"count":1}';
var objJSON = eval("(" + strJSON + ")");
alert(objJSON.result);
alert(objJSON.count);

    

تقریبا همه کتابخانه ها و ابزار های اجرای Ajax در جاوااسکریپت از پارس کردن پاسخ های در فالب جی سان پشتیبانی می کنند. برای مثال در jQuery می توانید از متد getJSON استفاده کنید:

      $.getJSON(url, function (json) {
    alert(json.result);
});

    

یا دریافت پاسخ در قالب JSON بوسیله fetch:

      fetch('https://api.example.com/data')
  .then(response => {
    return response.json();
  })
  .then(data => {
    // Process the JSON data here
    console.log(data); 
  })

    

یا دریافت پاسخ در قالب JSON بوسیله Axios:

      axios.get('https://api.example.com/data')
  .then(response => {
    // Process the JSON data here
    console.log(response.data); 
  })
  .catch(error => {
    console.error('There has been a problem with your axios operation:', error);
  });

    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!