自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

描述對(duì)象數(shù)據(jù)類型JSON字符串方法

開發(fā)
下面對(duì)JSON字符串而且不包含元數(shù)據(jù)ScriptIgnoreAttribute屬性的字段和屬性都會(huì)包含在此對(duì)象的JSON對(duì)象描述之中。

當(dāng)對(duì)象實(shí)例創(chuàng)建結(jié)束,我們就可以調(diào)用DeserializeInternal()方法。這個(gè)方法具體負(fù)責(zé)解析JSON序列化字符串并創(chuàng)建相應(yīng)的原始類型的對(duì)象。于是對(duì)象定義中會(huì)包括一個(gè)字符串常量__type,它的后面跟著的是描述對(duì)象數(shù)據(jù)類型的JSON字符串

如果這個(gè)對(duì)象通過一個(gè)web服務(wù)方法返回,那么此對(duì)象將在內(nèi)部處理器RestHandler類的InvokeMethod()方法中被自動(dòng)序列化。然而在上面的例子中,我們卻在我們的Web頁(yè)面的典型的Page.Page_Load()方法內(nèi)部使用這些對(duì)象。#t#

因此,我們應(yīng)該創(chuàng)建這些對(duì)象并且自動(dòng)地使用前面已經(jīng)討論的JavaScriptSerializer對(duì)象對(duì)它們進(jìn)行序列化。例如,我們來考慮使用如下代碼來序列化一個(gè)對(duì)象的情形:

  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); 

根據(jù)前面的分析,JavaScriptSerializer對(duì)象已經(jīng)使用SimpleTypeResolver初始化完畢(其中,JSON字符串負(fù)責(zé)把要序列化的對(duì)象轉(zhuǎn)換成一個(gè)字符串形式)。下面,我們來看一下序列化之后的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}} 

根據(jù)前面的分析,JavaScriptSerializer對(duì)象已經(jīng)使用SimpleTypeResolver初始化完畢(其中,SimpleTypeResolver負(fù)責(zé)把要序列化的對(duì)象轉(zhuǎn)換成一個(gè)字符串形式)。下面,我們來看一下序列化之后的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。因此,當(dāng)被序列化時(shí),JSON字符串的值本身就是一個(gè)JSON對(duì)象,它正是Phone對(duì)象的序列化之后的形式。再次強(qiáng)調(diào)的是,這里添加了類型標(biāo)記,以備反序列化時(shí)使用,從而確保創(chuàng)建相應(yīng)類型的原始對(duì)象。

責(zé)任編輯:chenqingxiang 來源: 電子工業(yè)出版社
相關(guān)推薦

2010-07-22 17:33:42

2009-08-07 15:49:46

使用C#字符串

2011-05-26 13:54:04

Json

2009-08-28 10:39:37

C#數(shù)值字符串

2024-07-11 15:50:36

2013-07-23 06:39:49

Json字符串到JsoAndroid開發(fā)學(xué)習(xí)Json萬能解析器

2023-05-05 07:49:07

GolangJSON格式

2022-05-18 11:35:17

Python字符串

2010-09-13 15:12:26

sql server字

2010-01-05 16:48:16

JSON 字符串

2009-09-13 21:52:16

LINQ字符串

2021-05-18 09:08:18

字符串子串對(duì)象

2013-12-02 09:43:29

字符串編程

2010-03-09 15:15:02

Python字符串類型

2009-10-13 16:05:07

VB.NET字符數(shù)據(jù)類

2010-06-04 14:59:06

MySQL數(shù)據(jù)庫(kù)

2021-09-17 14:13:28

JavaScript編程字符串

2009-09-04 10:26:09

Java和C#字符串類

2009-12-17 13:23:25

Ruby eval方法

2017-11-16 09:03:56

數(shù)據(jù)庫(kù)MySQLJSON
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)