基于WinCE的JSON 类库 源码
基于WinCE的JSON 类库,可以将对象序列化成字符串和文件。
提示,其在反序列化时有一个BUG:
如果对象的某个字段值为 null,将其序列化成字符串,然后将该字符串反序列化成对象时会报异常。
这个通常影响不大,在序列化时为对象的字段都提供一个非 null 的默认值即可。
测试代码:
internal class Program
{
private static void Main(string[] args)
{
string json = Converter.Serialize(new User("name", "password", AccountStatus.Enabled));
Converter.Serialize("out.txt", new int[] { , , , - }, "_");
Console.WriteLine(json); User user = Converter.Deserialize<User>(json, "_");
int[] values = Converter.DeserializeFromFile<int[]>("out.txt", "_");
Console.WriteLine(user.UserName); Console.WriteLine("Done. Press enter to exit");
Console.ReadLine();
}
} public class BaseUser
{
private int _id = ;
} [SerializeIncludingBase]
public class User : BaseUser
{
private string _userName;
private string _password;
[NonSerialized]
private readonly Role _role;
private AccountStatus _status;
private Thing _think = new Thing(); public string UserName
{
get { return _userName; }
set { _userName = value; }
}
public string Password
{
get { return _password; }
set { _password = value; }
}
public AccountStatus Status
{
get { return _status; }
set { _status = value; }
}
public Role Role
{
get { return _role; }
}
public Thing Thing
{
get { return new Thing(); }
} public User(string userName, string password, AccountStatus status)
{
UserName = userName;
Password = password;
Status = status;
_role = new Role(DateTime.Now, "Admin", this);
} private User()
{
}
} public class Role
{
public Role(DateTime expires, string name, User user)
{
Expires = expires;
Name = name;
User = user;
} public DateTime Expires { get; set; } public string Name { get; set; } public User User { get; set; } public Thing Thing
{
get { return new Thing(); }
}
} public class Thing
{
private string _name = "ABC"; public string Name
{
get { return _name; }
set { _name = value; }
}
} public enum AccountStatus
{
Enabled = ,
Disabled = ,
}
下载地址:
http://files.cnblogs.com/08shiyan/CodeBetter.JsonCF_v0.2_Source.zip
————————————————
续:
强大的 Newtonsoft.Json
http://files.cnblogs.com/08shiyan/Newtonsoft.Json.Compact.zip
之前一直用基于 .NET 的,没发现有基于 .NET CF 的,今天算是发现宝贝了。呵呵
基于WinCE的JSON 类库 源码的更多相关文章
- 基于vitamio的网络电视直播源码
这个项目是基于vitamio的网络电视直播源码,也是一个使用了vitamio的基于安卓的网络直播项目源码,可能现在网上已经有很多类似这样的视频播放应用了,不过这个还是相对来说比较完整的,希望这个案例能 ...
- json.parseArray源码解析
json.parseArray源码解析 public static <T> List<T> parseArray(String text, Class<T> cla ...
- js便签笔记(10) - 分享:json.js源码解读笔记
1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...
- 基于jQuery经典扫雷游戏源码
分享一款基于jQuery经典扫雷游戏源码.这是一款网页版扫雷小游戏特效代码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <center> <h1>j ...
- 配置Eclipse可以查看JDK类库源码
一.配置方法 配置Eclipse可以查看JDK类库源码 Window->Preferences->Java->Installed JREs 若没有JRE,需要自己添加进来,有的话,点 ...
- Android studio导入第三方类库源码以及jar包
新建一个Android项目,项目结构如下: 1.添加第三方类库源码 首先将第三方类库考入与app同级的目录下: 之后,在build.gradle(Moudule:app)下添加编译代码:在seting ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析 本文简要介绍了基于 Spring 的 web project 的启动流程,详细分析了 Spring 框架将开发人员基于 XML ...
- TCP/IP以及Socket聊天室带类库源码分享
TCP/IP以及Socket聊天室带类库源码分享 最近遇到个设备,需要去和客户的软件做一个网络通信交互,一般的我们的上位机都是作为客户端来和设备通信的,这次要作为服务端来监听客户端,在这个背景下,我查 ...
随机推荐
- 设计模式之美:Type Object(类型对象)
索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Type Object 的经典介绍. 实现方式(二):Type Object 在游戏设计中的使用. 意图 允许在运行时动态灵活的 ...
- Unity3D手游开发实践
<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/ ...
- windows 8.1 试用感受:蛋疼感大幅降低
众所周知windows 8 的最大使用感受就是蛋疼. 无论是微软MVP,还是我这样的万年不悔微软小白鼠,普通用户,小白用户,或多或少的都对这款操作系统感到蛋疼. 槽点太多,以至于大家都懒得批判了.好在 ...
- 跨站请求伪造CSRF
CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求. 在XSS危害 ...
- JavaScript 常用功能总结
小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...
- UWP入门教程1——UWP的前世今生
目录 引言 设备族群 UI 和通用输入模式 通用控件和布局面板 工具 自适应扩展 通用输入处理 引言 在本篇文章中,可以掌握以下知识: 设备族群,如何决定目标设备 新的UI控件和新面板帮助你适应不同的 ...
- PMO到底什么样?(3)
继续上一篇,PMO到底什么样?到这篇,本文就结束啦. 出色基地COE,4大典型职责 咱们知道悉数的公司,它都是要不断地持续改进和优化,包含公司内组织级的项目处理的机制,也需要不断的优化和进步.一般咱们 ...
- redis常用操作总结
在项目中时常会用到redis,redis看起来好像很难的样子,而且我也确认反复学习了很久,但是,总结下来,自己使用到的东西并不太多,如下作一些总结工作. 1.安装(单机) 1.1 windows, 直 ...
- JavaScript函数后面加不加括号的区别
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Win7系统.net framework 4.0没有注册导致部署在IIS的站点跑不起来怎么办
win7装了VS再装IIS,结果IIS里面有.NET4.0,但是程序始终是跑不起来,怎么办呢? 分析觉得可能是因为4.0没有注册到IIS,在win7下如果先安装vs2010 (附带会安装Microso ...