windows phone8.1:Xml,Json序列化和反序列化
2014-06-11 00:01
351 查看
原文:windows phone8.1:Xml,Json序列化和反序列化小梦本例主要实现以下四点内容:
将Car对象序列化为xml
将Car对象序列化为Json
将xml反序列化为Car对象
将json反序列化为json对象
{
public int Id { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
}[/task]
{
var myCars = new List<Car>();
myCars.Add(new Car() { Id = 1, Make = "Oldsmobile", Model = "Cutlas Supreme", Year = 1985 });
myCars.Add(new Car() { Id = 2, Make = "Geo", Model = "Prism", Year = 1993 });
myCars.Add(new Car() { Id = 3, Make = "Ford", Model = "Escape", Year = 2005 });
return myCars;
}[/task]
private async Task writeXMLAsync()
{
var myCars = buildObjectGraph();
var serializer = new DataContractSerializer(typeof(List<Car>));
using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
XMLFILENAME,
CreationCollisionOption.ReplaceExisting))
{
serializer.WriteObject(stream, myCars);
}
resultTextBlock.Text = "Write succeeded";
}
[/task]
private async Task readJsonAsync()
{
// Notice that the write **IS** identical ... except for the serializer.
string content = String.Empty;
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME);
using (StreamReader reader = new StreamReader(myStream))
{
content = await reader.ReadToEndAsync();
}
resultTextBlock.Text = content;
}
[/task]
{
string content = String.Empty;
List<Car> myCars;
var xmlSerializer = new DataContractSerializer(typeof(List<Car>));
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(XMLFILENAME);
myCars = (List<Car>)xmlSerializer.ReadObject(myStream);
foreach (var car in myCars)
{
content += String.Format("ID: {0}, Make: {1}, Model: {2} ", car.Id, car.Make, car.Model);
}
resultTextBlock.Text = content;
}[/task]
{
string content = String.Empty;
List<Car> myCars;
var jsonSerializer = new DataContractJsonSerializer(typeof(List<Car>));
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME);
myCars = (List<Car>)jsonSerializer.ReadObject(myStream);
foreach (var car in myCars)
{
content += String.Format("ID: {0}, Make: {1}, Model: {2} ", car.Id, car.Make, car.Model);
}
resultTextBlock.Text = content;
}[/task]
欢迎光临编程小梦。
将Car对象序列化为xml
将Car对象序列化为Json
将xml反序列化为Car对象
将json反序列化为json对象
Car类如下:
[task]public class Car{
public int Id { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
}[/task]
实例化Car对象:
[task]private List<Car> buildObjectGraph(){
var myCars = new List<Car>();
myCars.Add(new Car() { Id = 1, Make = "Oldsmobile", Model = "Cutlas Supreme", Year = 1985 });
myCars.Add(new Car() { Id = 2, Make = "Geo", Model = "Prism", Year = 1993 });
myCars.Add(new Car() { Id = 3, Make = "Ford", Model = "Escape", Year = 2005 });
return myCars;
}[/task]
将Car对象序列化为xml:
[task]private async Task writeXMLAsync()
{
var myCars = buildObjectGraph();
var serializer = new DataContractSerializer(typeof(List<Car>));
using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(
XMLFILENAME,
CreationCollisionOption.ReplaceExisting))
{
serializer.WriteObject(stream, myCars);
}
resultTextBlock.Text = "Write succeeded";
}
[/task]
将Car对象序列化为Json:
[task]private async Task readJsonAsync()
{
// Notice that the write **IS** identical ... except for the serializer.
string content = String.Empty;
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME);
using (StreamReader reader = new StreamReader(myStream))
{
content = await reader.ReadToEndAsync();
}
resultTextBlock.Text = content;
}
[/task]
将xml反序列化为Car对象:
[task]private async Task deserializeXmlAsync(){
string content = String.Empty;
List<Car> myCars;
var xmlSerializer = new DataContractSerializer(typeof(List<Car>));
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(XMLFILENAME);
myCars = (List<Car>)xmlSerializer.ReadObject(myStream);
foreach (var car in myCars)
{
content += String.Format("ID: {0}, Make: {1}, Model: {2} ", car.Id, car.Make, car.Model);
}
resultTextBlock.Text = content;
}[/task]
将json反序列化为json对象
[task]private async Task deserializeJsonAsync(){
string content = String.Empty;
List<Car> myCars;
var jsonSerializer = new DataContractJsonSerializer(typeof(List<Car>));
var myStream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(JSONFILENAME);
myCars = (List<Car>)jsonSerializer.ReadObject(myStream);
foreach (var car in myCars)
{
content += String.Format("ID: {0}, Make: {1}, Model: {2} ", car.Id, car.Make, car.Model);
}
resultTextBlock.Text = content;
}[/task]
欢迎光临编程小梦。
相关文章推荐
- Java Json/xml 序列化和反序列化 工具:JsonTools 和 simpleframework 附带实例
- C# 二进制、Xml、Json序列化和反序列化
- php json与xml序列化/反序列化
- Java Json/xml 序列化和反序列化工具:JsonTools 和 simpleframework【附带实例】
- Java Json/xml 序列化和反序列化工具:JsonTools 和 simpleframework【附带实例】
- php json与xml序列化/反序列化
- json 与 xml 序列化和反序列化工具
- [ServiceStack.Text] .net序列化,反序列化组件(号称最快,支持 JSON,XML,JSV格式)
- windows phone8.1:Xml,Json序列化和反序列化
- Java Json/xml 序列化和反序列化 工具:JsonTools 和 simpleframework 附带实例
- XML/JSON序列化和反序列化
- Xstream 序列化和 反序列化 XML Object JSON之间相互的
- 【C#】xml序列化及反序列化
- xml的序列化和反序列化
- C#的序列化和反序列化 TEST -XML
- C#序列化和反序列化json
- Spring RedisTemplate 序列化、反序列化扩展支持 FastJson:GenericFastJson2JsonRedisSerializer
- .NET Framewok 3.5 中 JSON 序列化和反序列化的简单实现
- ASP.NET中JSON的序列化和反序列化
- Json序列化和反序列化