使用DataContractJsonSerializer进行序列化和反序列化
2015-07-02 13:53
746 查看
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.Text; namespace ConsoleApplicationTestJson { [DataContract] internal class BankInfo { [DataMember] public string Name { get; set; } [DataMember] public string BankCode { set; get; } } class Program { static void Main(string[] args) { // 如果是从WCF服务拿到数据,BankInfo类型本身已经标记过DataContract特性和DataMember特性, // 所以可以直接用来序列化和反序列化。 //BankInfoServiceClient client = new BankInfoServiceClient(); //BankInfo[] bankInfos = client.GetBankList(); // BankInfo[] bankInfos = new BankInfo[] { new BankInfo() {BankCode = "002", Name = "AA银行"}, new BankInfo() {BankCode = "003", Name = "xx银行"}, new BankInfo() {BankCode = "004", Name = "yy银行"}, new BankInfo() {BankCode = "005", Name = "zz银行"}, }; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(BankInfo[])); MemoryStream ms = new MemoryStream(); serializer.WriteObject(ms, bankInfos); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); String path = @".\BankInfos.json"; if (File.Exists(path)) File.Delete(path); File.AppendAllText(path, jsonString); string jsonString2 = File.ReadAllText(path, Encoding.UTF8); MemoryStream ms2 = new MemoryStream(Encoding.UTF8.GetBytes(jsonString2)); object o = serializer.ReadObject(ms2); BankInfo[] list = o as BankInfo[]; } } }
只是简单的例子,使用时要进行封装以方便重用。
相关文章推荐
- javascript设计模式——代理模式
- 瀑布流布局(基于多栏列表流体布局实现)
- JS对象与JSON格式数据相互转换
- js定时器SetInterval与setTimeout
- js中的数据类型
- json级联城市
- javascript带回调函数的异步脚本载入方法实例分析
- javascript 闭包详解
- 浅谈Javascript线程及定时机制
- JavaScript获得url查询参数的方法
- js跨域请求的5中解决方式
- 一个用于每一天JavaScript示例-SVG中间javaScript画廊
- Extjs中store的多种操作
- JS实现从连接中获取youtube的key实例
- json
- JavaScript权威指南_119_第15章_脚本化文档_15.3-文档结构和遍历-作为节点树的文档
- JS 引用类型和值类型
- javascript实现简单的进度条
- Compiler Theory in JavaScript
- js表单验证