使用 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]

实现的自定义功能的具体代码请查看原英文文档