از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خواندن و نوشتن JSON با TypeScriptJavaScript Object Notation (JSON) به دلیل ساختار سبک و سادگی آن به استاندارد واقعی برای انتقال داده در وب تبدیل شده است. هنگام استفاده از TypeScript، یک ابر مجموعه ایستا تایپ شده از جاوا اسکریپت، می توانیم از JSON برای ساخت برنامه های کاربردی قابل اعتمادتر و موثرتر استفاده کنیم. این مقاله شما را راهنمایی می کند روی چگونه…
سرفصلهای مطلب
نشانگذاری شی جاوا اسکریپت (JSON) به دلیل ساختار سبک و سادگی آن به استاندارد واقعی برای انتقال دادهها از طریق وب تبدیل شده است. هنگام استفاده از TypeScript، یک ابر مجموعه ایستا تایپ شده از جاوا اسکریپت، می توانیم از JSON برای ساخت برنامه های کاربردی قابل اعتمادتر و موثرتر استفاده کنیم.
این مقاله شما را راهنمایی می کند روی روش خواندن و نوشتن JSON با TypeScript، پوشش خطاهای رایج، و حتی بهبود مدیریت JSON با رابط ها.
نوشتن JSON با TypeScript
نوشتن JSON در TypeScript بسیار ساده است زیرا از روش های جاوا اسکریپت داخلی استفاده می کند. JSON.stringify()
. این تابع یک مقدار جاوا اسکریپت را به یک رشته JSON تبدیل می کند.
بیایید به یک مثال نگاه کنیم:
let user = {
name: 'John Doe',
age: 25,
isAdmin: false,
};
let userJson = JSON.stringify(user);
console.log(userJson); // Output: {"name":"John Doe","age":25,"isAdmin":false}
در این کد یک عدد داریم user
شی ای که با استفاده از آن به رشته JSON تبدیل می کنیم JSON.stringify()
. خروجی یک نمایش رشته ای است user
هدف – شی.
هنگامی که JSON رشتهای را داشتیم، میتوانیم آن را در مقاصد مختلف بنویسیم، مانند پاسخ API، فایل یا چیز دیگری. مثلا:
import fs from 'fs';
let user = {
name: 'John Doe',
age: 25,
isAdmin: false,
};
let userJson = JSON.stringify(user);
fs.writeFile('user.json', userJson, (err) => {
if (err) {
console.log('Error writing file:', err);
} else {
console.log('Successfully wrote file');
}
});
خواندن JSON با TypeScript
خواندن، یا تجزیه، JSON در TypeScript همچنین از روشهای جاوا اسکریپت داخلی، بهویژه استفاده میکند. JSON.parse()
. این تابع یک رشته JSON را می گیرد و آن را به یک مقدار یا شی جاوا اسکریپت تبدیل می کند.
در اینجا یک مثال است:
let userJson = '{"name":"John Doe","age":25,"isAdmin":false}';
let user = JSON.parse(userJson);
console.log(user); // Output: { name: 'John Doe', age: 25, isAdmin: false }
در این مثال، ما یک رشته JSON داریم userJson
که با استفاده از آن به یک شی جاوا اسکریپت تجزیه می کنیم JSON.parse()
.
مشابه مثال قبلی “نوشتن” ما، منبع این JSON می تواند تعدادی چیز باشد، مانند درخواست کاربر API یا یک فایل. به عنوان مثال، اگر می خواهید JSON را از یک فایل بخوانید:
import fs from 'fs';
let user = {
name: 'John Doe',
age: 25,
isAdmin: false,
};
let userJson = JSON.stringify(user);
fs.writeFile('user.json', userJson, (err) => {
if (err) {
console.log('Error writing file:', err);
} else {
console.log('Successfully wrote file');
}
});
رسیدگی به خطا در تجزیه JSON و stringification
وقتی با JSON سروکار داریم، باید خطاهای احتمالی را به خوبی مدیریت کنیم تا از خراب شدن برنامههایمان جلوگیری کنیم. برای مثال، JSON.parse()
می تواند پرتاب کند SyntaxError
اگر رشته ای که باید تجزیه شود JSON معتبر نیست.
try {
let user = JSON.parse('not a JSON string');
} catch (e) {
console.log(e instanceof SyntaxError); // Output: true
console.log(e.message); // Output: Unexpected token o in JSON at position 1
}
در این مثال، ما سعی کردیم رشتهای را تجزیه کنیم که JSON معتبر نبود، که باعث شد a SyntaxError
. این try/catch
بلوک به ما اجازه می دهد تا خطا را دریافت کرده و آن را به درستی مدیریت کنیم.
استفاده از رابط ها برای تعریف ساختارهای JSON در TypeScript
یکی از ویژگی های قدرتمند TypeScript سیستم تایپ استاتیک آن است. این می تواند به ویژه هنگام کار با داده های JSON مفید باشد، زیرا ما می توانیم رابط هایی برای تعریف ساختار اشیاء JSON خود ایجاد کنیم. این کار تکمیل خودکار، بررسی خطا و خوانایی بهتر را فراهم می کند.
به عنوان مثال، رابط زیر را در نظر بگیرید:
interface User {
name: string;
age: number;
isAdmin: boolean;
}
اگر یک رشته JSON را به a تجزیه کنیم User
تایپ اسکریپت انتظار دارد که شی به آن بچسبد User
ساختار رابط
let userJson = '{"name":"John Doe","age":25,"isAdmin":false}';
let user: User = JSON.parse(userJson);
console.log(user); // Output: { name: 'John Doe', age: 25, isAdmin: false }
با این حال، بررسی نوع زمان کامپایل TypeScript به زمان اجرا گسترش نمی یابد. بنابراین، اگر یک رشته JSON با User
رابط، TypeScript در زمان اجرا خطایی ایجاد نمی کند.
let wrongUserJson = '{"name":"John Doe","isAdmin":false}';
let user: User = JSON.parse(wrongUserJson);
console.log(user); // Output: { name: 'John Doe', isAdmin: false }
اینجا wrongUserJson
رشته شامل یک نیست age
ویژگی، اما TypeScript وقتی JSON تجزیه شده را به آن اختصاص می دهیم خطایی ایجاد نمی کند user
هدف – شی. برای اطمینان از یکپارچگی داده ها در زمان اجرا، باید به صورت دستی JSON تجزیه شده را تأیید کنیم.
let wrongUserJson = '{"name":"John Doe","isAdmin":false}';
let user: User = JSON.parse(wrongUserJson);
if (!('age' in user)) {
throw new Error('Invalid user data: age property missing');
}
در این مثال، ما بررسی می کنیم که آیا age
اموال موجود در user
هدف – شی. اگر این کار را نکرد، خطا می دهیم. این یک مثال ساده است و برنامههای کاربردی دنیای واقعی ممکن است به استراتژیهای اعتبارسنجی داده پیچیدهتری نیاز داشته باشند.
توجه داشته باشید: رابط های TypeScript یک ساختار زمان کامپایل هستند و هیچ تاثیری ندارند روی جاوا اسکریپت تولید شده آنها فقط برای اطمینان از ایمنی نوع در طول توسعه وجود دارند.
نتیجه
مدیریت JSON در TypeScript را می توان با استفاده از سیستم تایپ ایستا TypeScript و با روش های تجزیه و تحلیل JSON و روش رشته بندی به طرز باورنکردنی موثر و ایمن کرد.
مدیریت صحیح خطا نیز نقش مهمی در ایجاد برنامه های بدون خطا دارد. چه از یک API داده دریافت می کنید یا داده ها را در یک فایل ذخیره می کنید، درک روش خواندن و نوشتن JSON با TypeScript یک مهارت ارزشمند برای هر توسعه دهنده ای است.
منتشر شده در 1403-01-03 18:27:05