object <=> Json با دوجو

در برنامه هایی که با تکنولوژی ای جکس نوشته میشن استفاده از Json به خاطر حجم کم  و … (دلایل دیگه ای که من نمیدونم) امری بدیهی شده. بعضی از مواقع باید آبجکت به رشته و یا رشته به آبجکت تبدیل گردد. دو تابع مفید در دوجو:

dojo.toJson : ورودی این تابع ، آبجکت است و رشته ای Json را به عنوان خروجی ارسال می کند.

 // a simple object
 var obj = { a:"one", b:3, c:true };

 // convert it to a string:
 var data = dojo.toJson(obj);
 console.log(data, typeof data);
 >>> {"a":"one","b":3,"c":true} string

dojo.fromJson: وروردی تابع ،رشته است و آبجکتی را به عنوان خروجی ارسال می کند.

var json = '{"a":"one","b":3,"c":true}';
var obj = dojo.fromJson(json);
console.log(obj.a, obj.b, obj.c);
>>> one 3 true

dojo.objectToQuery: همونطور که در مثال می بینید این تایع آبجکتی را به عنوان ورودی گرفته و آن را تبدیل به کوئری کرده و به خروجی می دهد.

(کوئری رشته ای  است که در موقع ارسال فرم با تکنیک GET در مرورگر دیده میشود)

  var uri = "http://some.server.org/somecontext/";
  var query = {
    foo: ["bar", "baz"],
    bit: "byte"
  };

  //Assemble the new uri with its query string attached.
  var queryStr = dojo.objectToQuery(query);
  uri = uri + "?" + queryStr;

  //The uri should look like:
  // http://some.server.org/somecontext/?foo=bar&foo=bar2&bit=byte

و تابع dojo.queryToObject که دقیقا برعکس بالا عمل میکند:

var uri = "http://some.server.org/somecontext/?foo=bar&foo=bar2&bit=byte";
var query = uri.substring(uri.indexOf("?") + 1, uri.length);
var queryObject = dojo.queryToObject(query);

//The structure of queryObject will be:
// {
//   foo: ["bar", "bar2],
//   bit: "byte"
// }

و توابع دیگری مانند formToJson و formToQuery [که قبلا توضیح دادم]

و اگر به بحث Object references در Json علاقه دارید باید از اکستنشن dojox.json.ref استفاده کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *