علی یاری زاده
علی یاری زاده
خواندن ۳ دقیقه·۳ سال پیش

قابلیت های جالب JSON در Javascript

تو این پست میخوام در مورد JSON که یک global object در جاوااسکریپت هست و یسری قابلیت های باحالی که ممکنه تا حالا ندیده باشیم صحبت کنم.

من اینجا فرض رو براین میگیرم که شما میدونید json چیه و ساختارش به چه صورته و اینجا یک سری قابلیت های بیشتر از متدهایی که ابجکت JSON به ما ارائه میده میگم، اگه با آشنایی کافی ندارید برای مطالعه بیشتر میتونید ایجا کلیک کنید.


امروزه انتقال دیتا به صورت json بسیار رایجه و روزانه ما با این نوع ساختار برخورد زیادی داریم این قابلیت بسیار مفید هستند.


-> Formatting

const user = { name: 'Ali', age: 23, isAdmin: true, friends: ['Reza', 'Mohsen'], address: { city: 'Tehran', country: 'Iran' } }; console.log(JSON.stringify(user));

خروجی کد بالا رو اینجا در حالت عادی ببینیم اینجا میبینم:

{&quotname&quot:&quotAli&quot,&quotage&quot:23,&quotisAdmin&quot:true,&quotfriends&quot:[&quotReza&quot,&quotMohsen&quot],&quotaddress&quot:{&quotcity&quot:&quotTehran&quot,&quotcountry&quot:&quotIran&quot}}

حالا میخوایم با قابلیت خوانایی بیشتر فرمت کنیم و ببینیم:

console.log(JSON.stringify(user, null, 2)); { &quotname&quot: &quotAli&quot, &quotage&quot: 23, &quotisAdmin&quot: true, &quotfriends&quot: [ &quotReza&quot, &quotMohsen&quot ], &quotaddress&quot: { &quotcity&quot: &quotTehran&quot, &quotcountry&quot: &quotIran&quot } }

تو این حالت دیتای خروجی 2 تا space به صورت indentation دادیم.

حالا اگه بخوایم یه کاراکتر خاص رو به ابتدای هر فیلد اضافه کنیم و به جای space کاراکتر یا رشته مورد نظر ما قرار بگیره به صورت زیر عمل میکنیم.

console.log(JSON.stringify(user, null, 'AAA')); { AAA&quotname&quot: &quotAli&quot, AAA&quotage&quot: 23, AAA&quotisAdmin&quot: true, AAA&quotfriends&quot: [ AAA&quotReza&quot, AAA&quotMohsen&quot AAA ], AAA&quotaddress&quot: { AAA&quotcity&quot: &quotTehran&quot, AAA&quotcountry&quot: &quotIran&quot AAA} AAA}

-> Custom output

دومین پارامتر ورودی stringify میتونه یک تابع (function) یا آرایه (array) باشه که به صورت زیر عمل میکنه.

  • ورودی آرایه:
const user = { name: 'Ali', password: '6543221', age: 23 } console.log(JSON.stringify(user, ['name', 'age']));

خروجی کد بالا به صورت زیر هست:

{&quotname&quot:&quotAli&quot,&quotage&quot:23}

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

  • ورودی تابع:
function stripKeys(...keys) { return (key, value) => { if (keys.includes(key)) { return; } return value; }; } const user = { name: 'Ali', password: '6543221', age: 23, gender: 'male' }; console.log(JSON.stringify(user, stripKeys('password', 'gender')));

خروجی بالا به صورت زیر است:

{&quotname&quot:&quotAli&quot,&quotage&quot:23}


همونطور که در مثال بالا دیدیم میتونیم آرگمان دوم که replace هست رو یه تابع بدیم و خروجی به دلخواه تعیین کنیم.


طبق معمول خلاصه و مفید، امیدوارم مفید باشه براتون.


javascriptjsonjsnode js
BackEnd developer, nodeJs
شاید از این پست‌ها خوشتان بیاید