Windows Phone 六、JSON

JSON序列化

1     public class Person
2     {
3         public int Id { get; set; }
4         public string Name { get; set; }
5         public int Age { get; set; }
6         public int Gender { get; set; }
7     }

Person

 1             Person zhang = new Person();
 2             zhang.Id = 1;
 3             zhang.Name = "letter zhang";
 4             zhang.Age = 18;
 5             zhang.Gender = ‘男‘;
 6             //序列化工具
 7             DataContractJsonSerializer serializer = new DataContractJsonSerializer(zhang.GetType());
 8             //准备一个流对象作为JSON载体
 9             using (var memory = new MemoryStream())
10             {
11                 //序列化一个对象到一个流当中
12                 serializer.WriteObject(memory, zhang);
13                 //让流中指针的位置放到第一位
14                 memory.Position = 0;
15                 //读取数据流中的数据
16                 using (var reader = new StreamReader(memory))
17                 {
18                     var result = await reader.ReadToEndAsync();
19                     System.Diagnostics.Debug.WriteLine(result);
20                 }
21             }

JSON反序列化

 1             Person zhang = new Person();
 2             zhang.Id = 1;
 3             zhang.Name = "letter zhang";
 4             zhang.Age = 18;
 5             zhang.Gender = ‘男‘;
 6             //序列化工具
 7             DataContractJsonSerializer serializer = new DataContractJsonSerializer(zhang.GetType());
 8             //定义JSON结果String
 9             string json;
10             //准备一个流对象作为JSON载体
11             using (var memory = new MemoryStream())
12             {
13                 //序列化一个对象到一个流当中
14                 serializer.WriteObject(memory, zhang);
15                 //让流中指针的位置放到第一位
16                 memory.Position = 0;
17                 //读取数据流中的数据
18                 using (var reader = new StreamReader(memory))
19                 {
20                     json = await reader.ReadToEndAsync();
21                 }
22             }
23             //反序列化工具
24             DataContractJsonSerializer serializer2 = new DataContractJsonSerializer(typeof(Person));
25             var buffer = Encoding.UTF8.GetBytes(json);
26             //根据字节数组创建一个流
27             using (var stream = new MemoryStream(buffer))
28             {
29                 //读取流对象中的Person对象
30                 var p2 = serializer2.ReadObject(stream) as Person;
31                 if (p2 != null)
32                 {
33                     System.Diagnostics.Debug.WriteLine(p2.Name);
34                 }
35             }

JsonHelper封装

 1     public static class JsonHelper
 2     {
 3         //序列化方法
 4         public async static Task<string> Serialization(object obj)
 5         {
 6             DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
 7             //准备一个流对象作为JSON载体
 8             using (var memory = new MemoryStream())
 9             {
10                 //序列化一个对象到一个流中
11                 serializer.WriteObject(memory, obj);
12                 //让流中指针的位置放到第一位
13                 memory.Position = 0;
14                 //读取数据流中的数据
15                 using (var reader = new StreamReader(memory))
16                 {
17                     string json = await reader.ReadToEndAsync();
18                     return json;
19                 }
20             }
21         }
22         //反序列化方法
23         public static object Deserialization(string json, Type resultType)
24         {
25             DataContractJsonSerializer serializer2 = new DataContractJsonSerializer(resultType);
26             var buffer = Encoding.UTF8.GetBytes(json);
27             //根据字节数组创建一个流
28             using (var stream = new MemoryStream(buffer))
29             {
30                 //读取流对象中的Person对象
31                 var p2 = serializer2.ReadObject(stream);
32                 return p2;
33             }
34         }
35         //泛型反序列化
36         public static TResult Deserialization<TResult>(string json) where TResult : class
37         {
38             DataContractJsonSerializer serializer2 = new DataContractJsonSerializer(typeof(TResult));
39             var buffer = Encoding.UTF8.GetBytes(json);
40             //根据字节数组创建一个流
41             using (var stream = new MemoryStream(buffer))
42             {
43                 //读取流对象中的Person对象
44                 var p2 = serializer2.ReadObject(stream) as TResult;
45                 return p2;
46             }
47         }
48         //重载泛型方法调用非泛型
49         public static TResult Deserialization<TResult>(string json) where TResult : class
50         {
51             return Deserialization(json, typeof(TResult)) as TResult;
52         }
53     }

JsonHelper

时间: 2024-08-26 07:08:23

Windows Phone 六、JSON的相关文章

Win32 Windows编程 六

WM_PAINT消息 1 WM_PAINT 由于窗口的互相覆盖等,产生需要绘制的区域, 那么会产生WM_PAINT消息.一般情况下,不直接发送WM_PAINT消息,通过API声明需要绘制区域来产生 WM_PAINT消息 例如可以使用 InvalidateRect 声明一个需要重新绘制的区域 BOOL InvalidateRect( HWND hWnd, // handle to window CONST RECT* lpRect, // rectangle coordinates BOOL bE

Struts2(十六)Json

一.JSON Json就是浏览器和服务器之间交换数据的一种轻量级对象 javaSctipt中类似的对象操作 $(function() { var person = { "name" : "张三", "age" : 21, "wife" : "李四" }; $("#msg").append("姓名:" + person.name+"<br/>&qu

小白学习windows第六篇------备份/磁盘卷

第一部分 备 份一.什么是备份? 备份,即另外准备一– 为应付文件.数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到大容量存储设备中二.备份对象的类别1.系统备份– 针对整个操作系统进行备份– 当操作系统损坏或者无法启动时,能通过备份快速恢复2.数据备份– 针对用户的数据文件.应用软件.数据库进行备份– 当这些数据丢失或损坏时,也能通过备份恢复3.数据冷备份? 什么是冷备份– 指需要备份的文档不被占用的情况下执行备份的方式– 比如将数据库软件关闭,对数据库资料做备份? 冷备

Python基础六--JSON, pickle模块

一.JSON 内存中的数据<--->格式json<--->字符类型<--->保存.基于网络传输 1. 将数据转化为str形式:data_str = json.dumps(data): 2. 将str形式数据转化为字典等数据:data = json.loads(data_str): 3. 注意json格式 :data = '{"name":"gangzi"}' : 二.pickle (只应用于Python,不同版本的Python彼此

windows+caffe(六)——convert.bat

convert.bat的格式为 convert_imageset.exe的位置+空格+FLAGS+空格+图片所在的位置+空格+你生成的list的位置+空格+将要生成的db格式要保存的位置 建议都使用绝对位置!!! 例子: D:/deeptools/caffe-windows-master/bin/convert_imageset.exe --shuffle --resize_height=256 --resize_width=256 D:/deeptools/caffe-windows-mast

Python学习第十三天 time datetime random os sysshutil json pickle shelve xml configparser hashlib suprocess logging re

https://www.cnblogs.com/yuanchenqi/articles/5732581.html https://www.cnblogs.com/linhaifeng/articles/6384466.html#_label2 一 time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(time.time())”,返回的是fl

[软件]_[Windows]_[参考NSUserDefaults自定义Windows的BASUserDefaults]

场景: 1. 在Mac下Cocoa开发,可以使用NSUserDefaults很容易的存储配置信息,而且它还支持基本类型的NSDictionary,NSArray等复杂类型. 我们使用这个类来存储运行时配置, 比如多语言选项, 检查更新选项, 快捷键设置等等.这个信息自动存储在bundleid的相关位置. 参考: http://blog.csdn.net/yepeng2014/article/details/49003753 这种配置很方面, 如果是Windows的话唯一可以和它相提并论的是注册表

JSON的解析和序列化

背景:XML曾经是互联网传输结构化数据的事实标准,但XML过于繁琐.冗长,而且解析麻烦,同XML数据结构要解析成DOM文档而且从中提取数据极为麻烦相比,JSON可以解析为JavaScript对象的优势极其明显.相比之下,JOSN是在JavaScript中读写结构化数据更好的方式,可以把JSON字符串直接传给eval(),而且不必创建DOM对象.JSON是一种数据格式,很多编程语言都有针对JOSN的解析器和序列化器. 一.JSON为JavaScript子集,可以使用eval解析JSON字符串,并返

json的学习笔记

json比较简单,所以先从json开始学起. 一 json的名称: json的全称是javascript object notation,中文名称为js 对象表示法. json的定义:json是一种轻量级的数据交换格式,具有良好的可读和快速编写的特性.,可以在不同平台间进行数据交换.json采用兼容性很高的文本格式,同时也具备类似于c语言体系的行为.--json.org 二 json的实例和结构: 一个简单的json实例: { "employees": [ { "firstN