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[];
}
}
}
只是简单的例子,使用时要进行封装以方便重用。