使用DataContractJsonSerializer进行序列化和反序列化

来源:互联网 发布:低价php空间 编辑:程序博客网 时间:2024/05/05 01:51

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[];        }    }}


只是简单的例子,使用时要进行封装以方便重用。

0 0
原创粉丝点击