象中包含列舉型別,在序列化成json字串的時候,顯示的是列舉型別對應的數字。
需要在json轉化的時候做一些操作,使之顯示字串
在列舉型別上新增屬性標籤
[jsonconverter(typeof(stringenumconverter))]
舉例如下:
包含列舉型別的物件定義
[csharp]view plain
copy
print?
[datacontract]
public
class
definition : jsonbase
[jsonproperty("name"
)]
public
string
name
[jsonproperty("title"
)]
public
string
title
[jsonproperty("description"
)]
public
string
description
[jsonproperty("required"
)]
public
bool
required
[jsonproperty("type"
)]
public
type
[jsonproperty("format"
)]
public
string
format
[jsonproperty("innertag"
)]
public
bool
innertag
}
其中types為列舉型別,定義如下
[csharp]view plain
copy
print?
public
enum
types
以上方式,直接查詢資料庫,返回結果如下:
[csharp]view plain
copy
print?
,
其中type顯示的是列舉型別對應的數值
接下來在列舉型別頭部加上標籤
[csharp]view plain
copy
print?
[jsonconverter(
typeof
(stringenumconverter))]
public
enum
types
再次查詢獲得結果如下
[csharp]view plain
copy
print?
,
以上就得到了想要的結果,但是又存在的問題是:
資料庫中儲存的字串型別的type欄位,如何對映到定義的物件中列舉型別的type
這就需要做轉化,把字串型別轉化成types列舉型別的字串
enum.parse(typeof(types), value.tostring())
將 string--->enum的轉化
以下附列舉型別的一些轉化方法
注意:列舉型別的基型別是除 char 外的任何整型,所以列舉型別的值是整型值。
enum 提供一些實用的靜態方法:
(1)比較列舉類的例項的方法
(2)將例項的值轉換為其字串表示形式的方法
(3)將數字的字串表示形式轉換為此類的例項的方法
(4)建立指定列舉和值的例項的方法。
舉例:enum colors ;
enum-->string
(1)利用object.tostring()方法:如colors.green.tostring()的值是"green"字串;
(2)利用enum的靜態方法getname與getnames:
public static string
getname(type
enumtype,object
value)
public static string
getnames(type
enumtype)
例如:enum.getname(typeof(colors),3))與enum.getname(typeof(colors), colors.blue))的值都是"blue"
enum.getnames(typeof(colors))將返回列舉字串陣列。
string-->enum
(1)利用enum的靜態方法parse:
public static object
parse(type
enumtype,string
value)
例如:(colors)enum.parse(typeof(colors), "red")
enum-->int
(1)因為列舉的基型別是除 char 外的整型,所以可以進行強制轉換。
例如:(int)colors.red, (byte)colors.green
int-->enum
(1)可以強制轉換將整型轉換成列舉型別。
例如:colors color = (colors)2 ,那麼color即為colors.blue
(2)利用enum的靜態方法toobject。
public static object
toobject(type
enumtype,int
value)
例如:colors color = (colors)enum.toobject(typeof(colors), 2),那麼color即為colors.blue
判斷某個整型是否定義在列舉中的方法:enum.isdefined
public static bool
isdefined(type
enumtype,object
value)
例如:enum.isdefined(typeof(colors), n))
json序列化 反序列化
json序列化 json的dumps方法可以將json格式資料序列為python的相關資料型別,比如str,常用於列印,另外,在序列化時,中文漢字被轉換為unicode編碼,在dumps函式中新增引數ensure ascii false可解決 dumps的indent參考可以調整顯示格式,即縮排,一...
Json序列化和反序列化
json測試 public class jsontest irun 實體序列化和反序列化 string json1 jsonhelper.serializeobject sdudent json1 student sdudent1 jsonhelper.deserializejsontoobject...
json序列化與反序列化
1.什麼是序列化與反序列化?序列化就是將記憶體中的資料結構轉換成一種中間格式儲存到硬碟或者基於到網路傳輸。反序列化就是將硬碟中或者網路中傳來的一種資料格式轉換成記憶體中資料格式。2.為什麼要有序列化和反序列化?1.可以儲存程式的執行狀態。比如遊戲中使用者在某個狀態下線,使用者遊戲的資料需要儲存,這時...