ServiceStack.Text 的JSON序列號和反序列化


使用 ServiceStack.Text 序列化 json的實現代碼

http://www.jb51.net/article/38338.htm

中文的一個ServiceStack 序列化示例




ServiceStack de JSON序列化其的性能測試:

Benchmarks for .NET's JSON Serializers

http://www.servicestack.net/benchmarks/


ServiceStack 的 JSON序列化操作的一篇很不錯的示例說明:

ServiceStack JsonSerializer

http://docs.servicestack.net/text-serializers/json-serializer


以上兩篇都是在ServiceStack的官網上的, 英文的文檔。


從上面的英文文章中整理出的API使用方法筆記:

  序列化 Serialization API

string SerializeToString<T>(T)
void SerializeToWriter<T>(T, TextWriter)
void SerializeToStream<T>(T, Stream)
string SerializeToString(object, Type)
void SerializeToWriter(object, Type, TextWriter)
void SerializeToStream(object, Type, Stream)

  反序列化 Deserialization API

T DeserializeFromString<T>(string)
T DeserializeFromReader<T>(TextReader)
object DeserializeFromString(string, Type)
object DeserializeFromReader(reader, Type)
object DeserializeFromStream(Type, Stream)
T DeserializeFromStream<T>(Stream)

 擴展方法 Extension methods

string ToJson<T>(this T)
T FromJson<T>(this string)

ToJson/FromJson 擴展方法的使用

new []{ 1, 2, 3 }.ToJson()   //= [1,2,3]
"[1,2,3]".FromJson<int[]>()  //= int []{ 1, 2, 3 }


支持的JSON數據類型


string

number

object

array

true

false

null


自定義序列化,可以使用結構體方式定製返回數據,也可以通過迭代方式輸出JSON數組

例如:

new Size { Width = 20, Height = 10 }.ToJson() // = "20x10"
new Point { X = 1, Y = 2 }.ToJson() // = [1,2]

實現的自定義功能的具體代碼請查看原英文文檔



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章