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]

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

时间: 2024-10-24 10:31:05

ServiceStack.Text 的JSON序列号和反序列化的相关文章

使用 ServiceStack.Text 序列化 json的实现代码

相信做 .net 开发的朋友经常会遇到 json 序列化这样的需要,今天发篇文章总结下自己使用ServiceStack.Text 来序列化 json.它的速度比 Newtonsoft.Json 快很多,在测试时发现比 fastJson 还快些. 首先,我们有下边两个类,一个是职员(Staff)类,一个是联系方式(Contact)类: public class Staff { public long ID { get; set; } public string Name { get; set; }

ServiceStack.Text / Newtonsoft.Json 两种json序列化性能比较

JSON序列化现在应用非常多,尤其在前后端分离的情况下,平常大多数C#下都使用Newtonsoft.Json来操作,量少的情况下,还可以忽略,但量大的情况下就要考虑使用ServiceStack.Text来操作,序列化性能差不多,反序列化性能要高一倍左右 int count = 10000; User user = new User() { Id = 1, Name = "tyh", AddTime = DateTime.Now, Age = 15, Status = true }; s

Asp.Net JSON序列号与反序列化

问题的引子 先来看问题的引子. 定义一个下面这样的类,此类有Serializable属性,并且有一个属性的定义没有使用自动属性来实现. [Serializable] public class Users { public int UserID { get; set; } public string UserName { get; set; } public string UserEmail { get; set; } private string _testProperty; public st

ServiceStack.Text 更快的序列化

Json.net 是以前最经常用的序列化组件,后来又注意到ServiceStack号称最快的,所以我做了以下测试 1)Json.net using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using Newtonsoft.Json; namespace Json.net { class Program { static voi

json序列化和反序列化案例

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 序列化简单理解为:把集合.数组等里的数据变成字符串 反序列化简单理解为:把字符串还原成集合,数组等对象. 1.对JSON数据进行序列化和反序列化 方法一: 可以使用DataContractJsonSeria

Json.NET、fastJSON、ServiceStack.Text简单序列化操作性能测试

由于最近项目中需要用到JSON序列化操作,所以对JSON序列化框架做了一下对比. Json.NET(Newtonsoft.Json)是我们平常用的最多的框架,现在成为了Visual Studio Web项目模板默认引用的库之一:fastJSON号称是最小最快的序列化工具:ServiceStack.Text是著名的Stack Exchange团队的开源项目.下面我们开始测试工作: 测试环境:操作系统Windows 8.1,CPU:Intel Core i7-3610QM,Visual Studio

ServiceStack.Text json中序列化日期格式问题的解决

标记: ServiceStack.Text,json,序列化,日期 在使用ServiceStack.Text的序列化为json格式的时候,当属性为datetime的时候,返回的是一个new date(324234234)的字符串,看着非常不爽. 如果是js来获取结果还好, 如果是c#获取这种字符串是没有办法转化为时间的. 所以我改造了下,让返回的是'2015-06-06 09:11:11'的格式. 先获取源码, 然后在jsconfig.cs中加入如下代码 Code Snippet private

DotNet的JSON序列化与反序列化

JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有两种表示结构,对象和数组,JSON 数据的书写格式是:名称/值对. 在vs解决方案中以前采用xml树的形式,组织项目的结构.在新的.net core中,项目的解决方案采用json作为项目的结构说明. 在.net的前后台数据交互中,采用序列化对象为json,前端ajax接受传输数据,反序列化为对象,在

C#中JSON序列化和反序列化

json序列化和反序列化帮助类: using System; 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.We