
دریافت داده های JSON خروجی یک API با Web Console
اکثر وب سرویس ها و API هایی که با آنها سر و کار داریم, داده های خود را با فرمت JSON (Javascript Object Notation) ارسال میکنند, این داده ها غالبا یک رشته هستند که برای تحلیل و بررسی دقیق آن, باید به شکل قالببندی شده نمایش داده شوند.
برای این منظور سادهترین راهکار استفاده از وب سایتهای آنلاین مانند JSON Editor Online است که ابزاری مبتنی بر وب برای مشاهده فایل JSON در یک نمای درختی واضح و قابل ویرایش است.
اما در برخی مواقع ممکن است نتوانید به خروجی مورد نظرتان از این طریق دست پیدا کنید. مثلا در زمانی که از یک JSON دیگر در داده های شما استفاده شده است.
برای مثال نمونهای از داده های JSON که از یک API برگشت داده است را ببینید :
{ "hasError": false, "messageId": 0, "referenceNumber": "123456789", "errorCode": 0, "count": 18, "ott": "a96ergd1828f9d98", "result": [ { "id": "123456789", "user": { "id": 123, "name": "linuwiki", "ssoId": "123654", "ssoIssuerCode": 1 }, "timestamp": 1609216512602, "uri": "/nzh/testapi/", "parameterValues": { "fromDate": [], "companyCode": [], "data": [], "offset": [ "۰" ], "size": [ "۱" ], "referenceNumber": [ "۱۲۳۴۵۶۷" ], "paymentId": [ "۴۴۴۴۴۴۴" ], "toDate": [], "billId": [ "۱۱۱۱۲۲۲۲۲۳۳۳۱" ], "id": [], "status": [] }, "errorCode": 0, "response": "{\"hasError\":false,\"errorCode\":0,\"count\":1,\"result\":[{\"id\":123456,\"billId\":\"1111222223331\",\"paymentId\":\"4444444\",\"price\":15000.0,\"utilityCompanyName\":\"تلفن ثابت\",\"subUtilityCompanyName\":\"تلفن خراسان رضوی۵۰۱\",\"requestDate\":1609149077094,\"referenceNumber\":1234567,\"status\":\"SUCCESS\",\"invoiceId\":10203040,\"settlementRequestId\":14578,\"userSrv\":{\"id\":1000000,\"name\":\"linuwiki\",\"ssoId\":\"123654\",\"ssoIssuerCode\":1},\"cancelDate\":0}]}", "token": "111417d********************78957", "duration": 50 } ] }
در اینجا مقدار فیلد response به صورت JSON بوده که به شکل نامرتبی دریافت شده است, و وقتی حجم اطلاعات موجود در آن افزایش پیدا کند, خوانایی کافی را نداشته و استخراج اطلاعات از آن مشکل خواهد بود.
برای این منظور میتوان از متد ()JSON.parse در کنسول مرورگر استفاده کرده و هر بخشی از اطلاعات که مود نیاز هست را parse نمود. با این کار داده ها به یک object در جاوا اسکریپت تبدیل می شوند و به راحتی قابل تحلیل و استخراج خواهند بود
نمونه کد فوق را در قالب یک پارامتر x در console ارسال کنید:
کد زیر را جهت استخراج مقدار response, وارد کنید:
x.result[0].response
حال برای نمایش درختی ریزالت پایانی, متد ()JSON.parse را فراخوانی کنید:
JSON.parse(x.result[0].response)
به این ترتیب به راحتی میتوان با داده ها به عنوان یک object در جاوا اسکریپت کار کرد بدون اینکه از مترجم ها و مفسر های پیچیده استفاده نمود.