您的位置:首页 > Web前端 > JavaScript

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


只是简单的例子,使用时要进行封装以方便重用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: