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 = ;
  3. zhang.Name = "letter zhang";
  4. zhang.Age = ;
  5. zhang.Gender = 1;
  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 = ;
  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 = ;
  3. zhang.Name = "letter zhang";
  4. zhang.Age = ;
  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 = ;
  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 = ;
  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

Windows Phone 六、JSON序列化的更多相关文章

  1. windows phone8.1:Xml,Json序列化和反序列化

    原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将js ...

  2. wp8.1 Study11:APP里文件读写和使用XML和Json序列化

    一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...

  3. JAVA与C#关于JSON序列化的比较

    JAVA CODE: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java. ...

  4. C#JSON序列化与反序列化

    原文:C#JSON序列化与反序列化 windows phone学习也有一段时间了,想要做一个新闻客户端练练手,于是就在网上找看有没有接口之类.在天狗播客找到了热点热词新闻资讯API开放接口,接口提供的 ...

  5. Newtonsoft.Json 序列化和反序列化 以及时间格式 2 高级使用

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  6. java对象json序列化时忽略值为null的属性

    环境: jdk: openjdk11 操作系统: windows 10教育版1903 目的: 如题,当一个对象里有些属性值为null 的不想参与json序列化时,可以添加如下注解 import com ...

  7. day15-Python运维开发基础(json序列化模块、random / time / zipfile / OS模块函数)

    1. json序列化模块 # ### json """ 所有编程语言都能够识别的数据格式叫做json,是字符串 json: 将数据类型序列化成字符串 pickle:将数据 ...

  8. .Net深入实战系列—JSON序列化那点事儿

    序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer ...

  9. Newtonsoft.Json 序列化和反序列化 时间格式【转】

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

随机推荐

  1. 从零开始山寨Caffe·叁:全局线程管理器

    你需要一个管家,随手召唤的那种,想吃啥就吃啥. ——设计一个全局线程管理器 一个机器学习系统,需要管理一些公共的配置信息,如何存储这些配置信息,是一个难题. 设计模式 MVC框架 在传统的MVC编程框 ...

  2. Python for Infomatics 第12章 网络编程六(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.9 词汇表 Beautif ...

  3. CSS的Hack技术

    主要是用来解决兼容性的特殊方法: IE都能识别*;标准浏览器(如FF)不能识别*: IE6能识别*,但不能识别 !important, IE7能识别*,也能识别!important,还有# FF不能识 ...

  4. .NET 二维码生成(ThoughtWorks.QRCode)

    引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string n ...

  5. python与正则表达式

    匹配一个字符: . 任意非\n字符 [...] \d \D digit \s \S space \w \W word 匹配前一个字符的多个: * 0->> + 1->> ? 0 ...

  6. memcache 笔记

    在windows下安装memecache,进入到安装目录,执行帮助命令可以查看到相关帮助 启动memcache,相关命令如上,比如-p就是端口号,memcache默认端口号是11211 语法:增加ad ...

  7. WPF整理--动态绑定到Logical Resource

    “What happens if we replace aspecific resource? Would that be reflected in all objects using the res ...

  8. Windows7 IE11 F12控制台DOC资源管理器报错的问题解决方法

    ------------------ Diagnostic: Exception in window.onload: Error: An error has ocurredJSPlugin.3005 ...

  9. PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别 有点像static 和 self的意思 !

    PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 通常情况下,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 都会返回 PHP ...

  10. 解决Win10图片打开方式没有“Windows照片查看器”问题

    1.打开注册表编辑器(Win+R,Regedit),定位至(建议修改前备份注册表): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewe ...