• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 使用 ServiceStack.Text 序列化 json的实现代码

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了servicestack.text,servicestack.redis,servicestack,servicestack.ormlite,servicestack 收费等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

相信做 .net 开发的朋友经常会遇到 json 序列化这样的需要,今天发篇文章总结下自己使用ServiceStack.Text 来序列化 json。它的速度比 Newtonsoft.Json 快很多,在测试时发现比 fastJson 还快些。

首先,我们有下边两个类,一个是职员(Staff)类,一个是联系方式(Contact)类:

public class Contact
{
    public long StaffID { get; set; }
    public string Email { get; set; }
}
</div>

首先,我们添加两个职员:

按以前很多人序列化 json 的方式:

我们需要下载 ServiceStack.Text.dll,将它引用到我们的项目中,并引用 ServiceStack.Text 命名空间。下边先看看单个类对象的序列化:

这样得到的 json 如下:

{
    "ID": 1,
    "Name": "xiaozhao",
    "Age": 0
}
</div>

细心的朋友会发现,我们在输出中并不打算使用 Age 属性,但这里却输出了 Age,为解决这个问题,我们有下边方法。

1.使用 JsonObject 类,它继承自Dictionary<string, string>,使得我们可以如下来输出我们想要的属性。

JsonObject json = new JsonObject();
json.Add("ID", staff.ID.ToString());
json.Add("Name", staff.Name);

var result = json.ToJson();
</div>
这样得到下边的结果[结果一],达到了我们的目的。

2.在项目中添加 System.Runtime.Serialization ,并引用命名空间 System.Runtime.Serialization。

我们可以在属性上边指明要序列化的属性,如下:

或者:

这样下边的代码输出的结果就变得和[结果一]相同了。

最后,我们看下类对象集合的序列化,我们添加职员的联系方式如下:

每个职员可能对应一个联系方式,这里要考虑有的职员没有联系方式的情况,直接给出代码:

    //联系方式
    var contact = listContact.FirstOrDefault(m => m.StaffID == staff.ID);
    if (contact != null)
    {
        JsonObject jsonContact = new JsonObject();
        jsonContact.Add("Email", contact.Email);
        //这里注意,将 Contact 对象序列化后的json串添加到了json对象
        json.Add("Contact", contact.ToJson());
    }
    //将json对象序列化再添加到list
    list.Add(json.ToJson());
}
//得到最终json串
var result = string.Format("[{0}]", string.Join(",", list));
</div>

得到的 json:

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-11扩展ASP.NET MVC三层框架且使用StructureMap实现依赖注入1-Model层
  • 2017-05-11.NET 解决TabControl 页里面多余边距问题经验分享
  • 2017-05-11asp.net微软图表控件使用示例代码分享
  • 2017-05-11如何在asp.net中使用FreeTextBox控件
  • 2017-05-11.net 上传文件前所未有的简单
  • 2017-05-11ASP.NET中URL Rewrite的具体实现方法
  • 2017-05-11控件开发时两种JS嵌入资源方式的使用方法
  • 2017-05-11C# WindowsMediaPlayer 的一些用法实例
  • 2017-05-11ASP.Net不执行问题一解
  • 2017-05-11ASP.NET使用gridview获取当前行的索引值

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET中的Inherits、CodeFile、CodeBehind的区别详解
    • WPF实现带全选复选框的列表控件
    • 一个可以让.net程序在非WIN平台上运行的软件Mono
    • web.config使用方法指南
    • Ajax+asp.net智能匹配检索(含图含完整代码)
    • 使用NLog给Asp.Net Core做请求监控的方法
    • 基于Jexus-5.6.3使用详解
    • asp.net调用飞信免费发短信(测试有效)
    • Asp.net 无限级分类实例代码
    • asp.net core MVC 全局过滤器之ExceptionFilter过滤器(1)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有