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

詳數(shù)JSON數(shù)據(jù)類型的使用于說明技巧

開發(fā)
針對多種不同的數(shù)據(jù)類型的轉(zhuǎn)換器經(jīng)注冊后都會存儲在此字典對象中。概括來看,JSON數(shù)據(jù)類型對象被定義如表格1所示的一些數(shù)據(jù)類型。

首先需要注意的是,如果嵌套的對象數(shù)目大于JSON數(shù)據(jù)類型中所定義的值100的話,序列化過程將會失敗。顯然,如果序列化后的字符串的長度超出MaxJsonLength屬性所定義的值0x200000(即十進(jìn)制的2,097,152)的話,序列化過程也會失敗。

此外,通過上面代碼也可以看出,對象將被序列化為一個StringBuilder對象,***返回相應(yīng)的字符串?dāng)?shù)據(jù)。其實,主要的工作是在私有方法SerializeValue()中完成的。在我們討論這個方法之前,首先注意到,JavaScriptSerializer對象使用了JavaScriptTypeResolver對象。#t#

這個JavaScript類型解析器負(fù)責(zé)實現(xiàn)在字符串類型與其他類型之間的相互轉(zhuǎn)換;當(dāng)序列化定制對象時這一功能是非常重要的。還應(yīng)注意的是,__type屬性將被包含于JSON數(shù)據(jù)類型中,以便標(biāo)識對象的類型。之后,客戶端會把JSON數(shù)據(jù)類型為原始的對象形式。

JavaScriptTypeResolver對象包括兩個public類型的方法,一個負(fù)責(zé)把原始類型解析為字符串類型,另一個則負(fù)責(zé)把字符串解析為原始類型。這個類的原型定義如下所示:

  1. public abstract class JavaScriptTypeResolver  
  2.  
  3. {  
  4.  
  5.      //方法  
  6.  
  7.      protected JavaScriptTypeResolver();  
  8.  
  9.      public abstract Type ResolveType(string id);  
  10.  
  11.      public abstract string ResolveTypeId(Type type);  
  12.  

顯然,上面這個JavaScriptTypeResolver類是一個抽象基類;因此,必須通過其他對象進(jìn)一步派生使用,從而最終實現(xiàn)在原始類型與字符串之間的相應(yīng)解析。現(xiàn)在,我們可以使用的對象是SimpleTypeResolver,而且JSON數(shù)據(jù)類型也正好實現(xiàn)了上面所要求實現(xiàn)的方法—使用System.Type對象實現(xiàn)字符串描述形式與原始Type對象之間的相互解析。請看下面的例子:

  1. public override Type ResolveType(string id)  
  2.  
  3. {  
  4.  
  5.      return Type.GetType(id);  
  6.  
  7. }  
  8.  
  9. public override string ResolveTypeId(Type type)  
  10.  
  11. {  
  12.  
  13.      if (type == null)  
  14.  
  15.      {  
  16.  
  17.          throw new ArgumentNullException("type");  
  18.  
  19.      }  
  20.  
  21.      return type.AssemblyQualifiedName;  
  22.  

***,JavaScriptSerializer對象還有可能使用JavaScriptConverter對象,因為內(nèi)置的序列化過程無法實現(xiàn)對于所有可用數(shù)據(jù)類型的序列化。在這種情況下,可以從抽象基類JavaScriptConverter對象派生一個子類,由它來實現(xiàn)特定類型數(shù)據(jù)的序列/反序列化。

可以使用JavaScriptSerializer對象的RegisterConverters()方法注冊一個轉(zhuǎn)換器對象。此方法把所有的轉(zhuǎn)換器對象存儲在一個Dictionary對象中;針對多種不同的數(shù)據(jù)類型的轉(zhuǎn)換器經(jīng)注冊后都會存儲在此字典對象中。概括來看,這個Dictionary對象被定義如表格1所示的一些JSON數(shù)據(jù)類型

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

2010-01-05 17:43:29

JSON字符串

2011-05-26 13:54:04

Json

2010-01-06 14:14:11

JSON版本

2010-01-13 17:32:02

C++數(shù)據(jù)類型

2010-01-07 17:41:19

JSON定義法

2010-08-25 13:36:53

DB2Oracle

2023-11-08 18:05:06

Python類型技巧

2010-08-26 09:44:42

db2數(shù)據(jù)類型

2010-01-06 15:18:51

Json插件

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2010-01-08 09:03:38

返回JSON數(shù)據(jù)

2010-09-06 17:35:43

SQL函數(shù)

2010-01-07 16:55:06

JSON字符串

2017-11-16 09:03:56

數(shù)據(jù)庫MySQLJSON

2010-01-08 14:41:24

JSON 緩存數(shù)據(jù)

2010-08-10 17:17:59

2010-01-05 16:33:35

使用JSON

2021-04-16 07:19:04

Hive數(shù)據(jù)類型Hql

2016-08-18 14:13:55

JavaScript基本數(shù)據(jù)引用數(shù)據(jù)

2014-01-05 17:08:09

PostgreSQL數(shù)據(jù)類型
點贊
收藏

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