DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 描述對象數據類型JSON字符串方法
描述對象數據類型JSON字符串方法
編輯:XML詳解     

當對象實例創建結束,我們就可以調用DeserializeInternal()方法。這個方法具體負責解析JSON序列化字符串並創建相應的原始類型的對象。於是對象定義中會包括一個字符串常量__type,它的後面跟著的是描述對象數據類型的JSON字符串。

如果這個對象通過一個web服務方法返回,那麼此對象將在內部處理器RestHandler類的InvokeMethod()方法中被自動序列化。然而在上面的例子中,我們卻在我們的Web頁面的典型的Page.Page_Load()方法內部使用這些對象。

  • 專家充分介紹JSON的優勢所在說明
  • 圖示法進行JSON結構的說明指導
  • 闡述JSON轉化的結構事實說明介紹
  • 如何更好的進行XML轉換為JSON問題介紹
  • 詳細說明JSON字符串的使用和維護工作

因此,我們應該創建這些對象並且自動地使用前面已經討論的JavaScriptSerializer對象對它們進行序列化。例如,我們來考慮使用如下代碼來序列化一個對象的情形:

  1. JavaScriptSerializer JSSerializer = new   
  2. JavaScriptSerializer(new SimpleTypeResolver());   
  3. Customer cust = new Customer();   
  4. cust.FirstName = "Joe";   
  5. cust.EmailAddress = "jknown@domain.com";   
  6. cust.PhoneNumbers = new Phone();   
  7. cust.PhoneNumbers.HomePhone = "888-888-8888";   
  8. string serializedText = JSSerializer.Serialize(cust); 

根據前面的分析,JavaScriptSerializer對象已經使用SimpleTypeResolver初始化完畢(其中,JSON字符串負責把要序列化的對象轉換成一個字符串形式)。下面,我們來看一下序列化之後的JSON文本:

  1. {"__type":"Customer, App_Web_plrzlwbj,   
  2. Version=0.0.0.0, Culture=neutral,   
  3. PublicKeyToken=null","FirstName":"Joe","LastName":null,   
  4. "EmailAddress":jknown@domain.com,   
  5. "PhoneNumbers":{"__type":"Phone, App_Web_plrzlwbj, Version=0.0.0.0,   
  6. Culture=neutralPublicKeyToken=null",   
  7. "HomePhone":"888-888-8888","WorkPhone":null}} 

根據前面的分析,JavaScriptSerializer對象已經使用SimpleTypeResolver初始化完畢(其中,SimpleTypeResolver負責把要序列化的對象轉換成一個字符串形式)。下面,我們來看一下序列化之後的JSON字符串:

  1. public class Customer   
  2. {   
  3.      private string _firstName;   
  4.      public string FirstName   
  5.      {   
  6.          get { return _firstName; }   
  7.          set { _firstName = value; }   
  8.      }   
  9.      private string _lastName;   
  10.      public string LastName   
  11.      {   
  12.          get { return _lastName; }   
  13.          set { _lastName = value; }   
  14.      }   
  15.      private string _email;   
  16.      public string EmailAddress   
  17.      {   
  18.          get { return _email; }   
  19.          set { _email = value; }   
  20.      }   
  21.      private Phone _phoneNumber;   
  22.      public Phone PhoneNumbers   
  23.      {   
  24.          get { return _phoneNumber; }   
  25.          set { _phoneNumber = value; }   
  26.      } }  

注意,其中的PhoneNumbers屬性屬於定制類型—Phone。因此,當被序列化時,JSON字符串的值本身就是一個JSON對象,它正是Phone對象的序列化之後的形式。再次強調的是,這裡添加了類型標記,以備反序列化時使用,從而確保創建相應類型的原始對象。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved