ورود

View Full Version : سوال: نحوه استفاده از تابع JSON.stringify



ho3ink2
چهارشنبه 02 مرداد 1392, 21:54 عصر
سلام ، تو یه پروسه خروجی شد چیزی شبیه به این کد:
[{name:john,age:27},{name:sam,age:23},{name:gilbert o,age:29},{name:jack,age:22},{name:robert,age:19}]

که در اون از روشی که ذکر شد استفاده شده [stringify]
حالا میخوام این خروجی رو (اطلاعات بدست اومده) به حالت اولیه برگردونم.
کسی راه حلی داره؟ ممنون میشم بدونم

MEHR4N
پنج شنبه 03 مرداد 1392, 16:38 عصر
برای تبدیل string به json از تابع eval استفاده میکنند، الان میتونی بزنی

eval('(' +yourString + ')');

ولی چون eval هر رشته ای رو تبدیل میکنه به کد جاوااسکریپت میگن خوب نیست از نظر امنیتی، چون ممکنه یه کد مخرب به جای یک فرمت json واست فرستاده شه
خود کراکفورد که تقریبا خالق json بوده، یه کد جاوااسکریپت نوشته میتونی اونو دانلود کنی از متد JSON.parse استفاده کنی، که این با regular expression چک میکنه حتما اون رشته، یک فرمت json معتبر هست بعد تبدیل میکنه، البته یه سری browser ها اینو به صورت native گذاشتن تو ورژن بعدی جاوااسکریپت هم قراره یه استاندارد بشه که سرعتش هم بیشتر خواهد بود
https://github.com/douglascrockford/JSON-js
بعد اینکه اینو اضافه کردی، اینجوری تبدیل میکنی:
var obj = JSON.parse(yourString);
تو browser هایی هم که خودشون اینو دارن هم به همین صورت باید بنویسی

afshin9032
پنج شنبه 03 مرداد 1392, 18:34 عصر
سلام ، تو یه پروسه خروجی شد چیزی شبیه به این کد:
[{name:john,age:27},{name:sam,age:23},{name:gilbert o,age:29},{name:jack,age:22},{name:robert,age:19}]

که در اون از روشی که ذکر شد استفاده شده [stringify]
حالا میخوام این خروجی رو (اطلاعات بدست اومده) به حالت اولیه برگردونم.
کسی راه حلی داره؟ ممنون میشم بدونم

این الان خودش یک json object هست !!!
بعد شما میخوای دوباره به json تبدیل کنی ؟؟

ho3ink2
پنج شنبه 03 مرداد 1392, 22:08 عصر
این الان خودش یک json object هست !!!
بعد شما میخوای دوباره به json تبدیل کنی ؟؟

منظورم از حالت اولیه اینه که میخوام این رشته بدست اومده رو تو بانک اطلاعاتی ذخیره کنم ، خب با این فرمت که نمیشه باید این id ها و parent id ها رو تک تک وارد بانکم کنم ، پس باید از هم جدا کنم و از فرمت json به رشته معمولی تبدیلشون کنم.
فکر کنم توضیحات کامل بود ولی اگه احیانا سوالی بود بفرمایید جواب میدم.

ho3ink2
پنج شنبه 03 مرداد 1392, 22:11 عصر
برای تبدیل string به json از تابع eval استفاده میکنند، الان میتونی بزنی

eval('(' +yourString + ')');

ولی چون eval هر رشته ای رو تبدیل میکنه به کد جاوااسکریپت میگن خوب نیست از نظر امنیتی، چون ممکنه یه کد مخرب به جای یک فرمت json واست فرستاده شه
خود کراکفورد که تقریبا خالق json بوده، یه کد جاوااسکریپت نوشته میتونی اونو دانلود کنی از متد JSON.parse استفاده کنی، که این با regular expression چک میکنه حتما اون رشته، یک فرمت json معتبر هست بعد تبدیل میکنه، البته یه سری browser ها اینو به صورت native گذاشتن تو ورژن بعدی جاوااسکریپت هم قراره یه استاندارد بشه که سرعتش هم بیشتر خواهد بود
https://github.com/douglascrockford/JSON-js
بعد اینکه اینو اضافه کردی، اینجوری تبدیل میکنی:
var obj = JSON.parse(yourString);
تو browser هایی هم که خودشون اینو دارن هم به همین صورت باید بنویسی

با تشکر فراوان از لطف شما ، اما بنده این رشته (json) رو دارم و میخوام به رشته معمولی تبدیلش کنم.

MEHR4N
جمعه 04 مرداد 1392, 01:44 صبح
همون کد crockford رو که گفتم دو تا بخش داره، یکی واسه تبدیل string به object، که با JSON.parse هست یکی تبدیل object به string که با JSON.stringify هست
نمیدونم منظور شما همین بوده یا نه

afshin9032
جمعه 04 مرداد 1392, 13:39 عصر
اگر زبان سمت سرورت php است از json_decode استفاده کن که یک ارایه php برات بر می گردونه .
توی .net هم منطقا باید باشه ، منتها چون کار نکردم نمی تونم پاسخی بدم :لبخندساده:

ho3ink2
جمعه 04 مرداد 1392, 13:58 عصر
همون کد crockford رو که گفتم دو تا بخش داره، یکی واسه تبدیل string به object، که با JSON.parse هست یکی تبدیل object به string که با JSON.stringify هست
نمیدونم منظور شما همین بوده یا نه

merci mehran jan

ho3ink2
جمعه 04 مرداد 1392, 13:59 عصر
اگر زبان سمت سرورت php است از json_decode استفاده کن که یک ارایه php برات بر می گردونه .
توی .net هم منطقا باید باشه ، منتها چون کار نکردم نمی تونم پاسخی بدم :لبخندساده:

زبان سمت سرورم دات نت هستش ولی بازم مرسی بابت راهنماییت.

ho3ink2
شنبه 05 مرداد 1392, 01:58 صبح
مشکلو جور دیگه ای حل کردم ، ممنون از همه