最近在寫些呼叫他人介面的程式,用到了大量的json、xml序列化和反序列化,今天就來總結下json的序列化和反序列化的實現,有寫得不好的望園中博友多多指教。
json序列化和反序列化幫助類:
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using
system.runtime.serialization;
using
system.runtime.serialization.json;
using
system.io;
using
system.text.regularexpressions;
using
system.web.script.serialization;
namespace
helpclass.typehelp
//////
json反序列化(非二進位制方式)
/// ///
//////
public
static t jsondeserialize(string
jsonstring)
//////
json序列化(二進位制方式,實體類使用[serializable])
/// ///
//////
public
static
string jsonserializerio(t t)
}//////
json反序列化(二進位制方法,實體類使用[serializable])
/// ///
//////
public
static t jsondeserializeio(string
jsonstring)}}
}
上面這個類使用了兩中json序列化形式。
1、 使用system.web.script.serialization進行序列化和反序列化,不過在vs中需要新增引用system.web.script.serialization的時候,請先引用system.web.extensions。
使用方法:
(1)需要序列化和反序列化的類
publicclass
ddd
public
string d2
public
string d3
}
(2)序列化和反序列化
序列化單個類為json:
ddd a = new ddd ;string stra = helpclass.typehelp.jsonhelp.jsonserializer(a);
ddd dd2 = helpclass.typehelp.jsonhelp.jsondeserialize(stra);
序列化類序列為json陣列:
ddd a = new ddd ;ddd b = new ddd ;
ddd c = new ddd ;
list
abc = new list();
abc.add(a);
abc.add(b);
abc.add(c);
string strabc = helpclass.typehelp.jsonhelp.jsonserializer>(abc);
list
ddabc =helpclass.typehelp.jsonhelp.jsondeserialize>(strabc);
2、 使用system.runtime.serialization.json命名空間下的datacontractjsonserializer類進行 json的序列化和反序列化,該方法使用的二進位制的方式來序列化和反序列化,使用該類方法時需要在對應的實體類中有相應的標識(如: [datacontract] [datamember(name = "")])在下面的呼叫時有相關說明。
使用方法:
(1)需要序列化和反序列化的類
[datacontract]public
class
ddd [datamember(name = "d2"
)]
public
string d2
[datamember(name = "d3"
)]
public
string d3
}
(2)序列化和反序列化
序列化單個類為json:
ddd a = new ddd ;string stra = helpclass.typehelp.jsonhelp.jsonserializer(a);
ddd dd2 = helpclass.typehelp.jsonhelp.jsondeserialize(stra);
序列化類序列為json陣列:
ddd a = new ddd ;
ddd b = new ddd ;
ddd c = new ddd ;
list
abc = new list();
abc.add(a);
abc.add(b);
abc.add(c);
string strabc = helpclass.typehelp.jsonhelp.jsonserializer>(abc);
list
ddabc =helpclass.typehelp.jsonhelp.jsondeserialize>(strabc);
看完了上面的這些或許你已經對json的序列化和反序列化有了一定的了解,今天就寫到這裡,下次就總結一下xml的序列化和反序列化。
Json序列化和反序列化
json測試 public class jsontest irun 實體序列化和反序列化 string json1 jsonhelper.serializeobject sdudent json1 student sdudent1 jsonhelper.deserializejsontoobject...
json序列化 反序列化
json序列化 json的dumps方法可以將json格式資料序列為python的相關資料型別,比如str,常用於列印,另外,在序列化時,中文漢字被轉換為unicode編碼,在dumps函式中新增引數ensure ascii false可解決 dumps的indent參考可以調整顯示格式,即縮排,一...
序列化和反序列化 C 序列化與反序列化。
序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...