Xml、Json序列化
Xml序列化:
public class XmlHelper
{
private static string XmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["XmlPath"]); public static T FileToObject<T>(string fileName) where T : new()
{
string fullName = Path.Combine(XmlPath, fileName);
if (File.Exists(fullName))
{
using (Stream fStream = new FileStream(fullName, FileMode.Open, FileAccess.ReadWrite))
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
return (T)xmlFormat.Deserialize(fStream);
}
}
else
{
return default(T);
} } public static void ObjectToFile<T>(T obj, string fileName) where T : new()
{
string fullName = Path.Combine(XmlPath, fileName);
string fullPath = Path.GetDirectoryName(fullName);
if (!Directory.Exists(fullPath))
{
Directory.CreateDirectory(fullPath);
}
using (Stream fStream = new FileStream(fullName, FileMode.Create, FileAccess.ReadWrite))
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
xmlFormat.Serialize(fStream, obj);
}
} public static string ObjectToString<T>(T obj) where T : new()
{
XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
Stream stream = new MemoryStream();
xmlSerializer.Serialize(stream, obj);
stream.Position = ;
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
} public static T StringToObject<T>(string content) where T : new()
{
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content)))
{
XmlSerializer xmlFormat = new XmlSerializer(typeof(T));
return (T)xmlFormat.Deserialize(stream);
}
}
}
Json序列化:
/// <summary>
/// Json序列化器
/// </summary>
public class JsonHelper
{
private static string JsonPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["JsonPath"]); public static T FileToObject<T>(string fileName) where T : new()
{
string fullName = Path.Combine(JsonPath, fileName);
if (File.Exists(fullName))
{
return StringToObject<T>(File.ReadAllText(fullName, Encoding.Default));
}
else
{
return default(T);
}
} public static void ObjectToFile<T>(T obj, string fileName) where T : new()
{
string fullName = Path.Combine(JsonPath, fileName);
string fullPath = Path.GetDirectoryName(fullName);
if (!Directory.Exists(fullPath))
{
Directory.CreateDirectory(fullPath);
}
using (FileStream fileStream = File.Create(fullName))
{
string text = JsonConvert.SerializeObject(obj);
byte[] bytes = Encoding.Default.GetBytes(text);
fileStream.Write(bytes, , bytes.Length);
}
} public static string ObjectToString<T>(T obj) where T : new()
{
return JsonConvert.SerializeObject(obj);
} public static T StringToObject<T>(string content) where T : new()
{
return JsonConvert.DeserializeObject<T>(content);
}
}
Xml、Json序列化的更多相关文章
- windows phone8.1:Xml,Json序列化和反序列化
原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将js ...
- C#里XML(JSON)序列化时,自动隐藏值为Null的成员的输出
从StackOverflow里找到的答案.发现对最新的Newtownsoft的JSON序列化也同样适用. https://stackoverflow.com/questions/5818513/xml ...
- Xml,Json,Hessian,Protocol Buffers序列化对比
简介 这篇博客主要对Xml,Json,Hessian,Protocol Buffers的序列化和反序列化性能进行对比,Xml和Json的基本概念就不说了. Hessian:Hessian是一个轻量级的 ...
- wp8.1 Study11:APP里文件读写和使用XML和Json序列化
一.文件读写 1.基本操作(使用FileIO API) 这个方法在上一个stduy已经学过,那么贴出来复习下,代码如下: private async void writeTextToLocalStor ...
- WebApi2官网学习记录---JSON与XML的序列化
JSON序列化: WebAPI的默认序列库使用的是Json.NET,可以在Globally中配置使用DataContractJsonSerializer 进行序列化 protected void Ap ...
- xml 和 json 序列化忽略字段
xml 和 json 序列化忽略字段: @JsonIgnore @XmlTransient
- xml的序列化与反序列化求一个好用的东西,类似,newtonsoft.net转json的东西。xml里面的结构和数据库不一致..................
xml的序列化与反序列化求一个好用的东西,类似,newtonsoft.net转json的东西.xml里面的结构和数据库不一致..................
- C# 序列化详解,xml序列化,json序列化对比
本文讲讲一些纯技术的东西.并且讲讲一些原理性的东西,和一般的百度的文章不一致,如果你对序列化不清楚,绝对可以很有收获. 技术支持QQ群(主要面向工业软件及HSL组件的):592132877 (组件的 ...
- json序列化.xml序列化.图片转base64.base64转图片.生成缩略图.IEnumerable<TResult> Select<TSource, TResult>做数据转换的五种方式
JSON序列化 /// <summary> /// JSON序列化 /// </summary> public static class SPDBJsonConvert { ...
随机推荐
- HTTP cookies 详解
http://blog.csdn.net/lijing198997/article/details/9378047
- ubuntu下不用拔盘就可以重新识别usb设备
#!/bin/sh # Usage: ./resetusb ARGUMENT(The keyword for your usb device) var1=$ keyword=${var1:=Stora ...
- Crytek的幕后花絮
无论是哪种公司规模和状态.Xsolla都能够为其提供定制化的服务.我们提供定制化的技术集成,而不是提供一系列的解决方式.由于我们致力于满足每个合作伙伴的需求.整套的解决方式还存在着一系列的潜在隐患,我 ...
- Hadoop入门进阶步步高(二)-文件夹介绍
二.Hadoop文件夹结构 这里重点介绍几个文件夹bin.conf及lib文件夹. 1.$HADOOP_HOME/bin文件夹 文件名 说明 hadoop 用于运行hadoop脚本命令,被hadoop ...
- Python: PS 滤镜--碎片特效
本文用 Python 实现 PS 滤镜中的碎片特效,这个特效简单来说就是将图像在 上,下,左,右 四个方向做平移,然后将四个方向的平移的图像叠加起来做平均.具体的效果图可以参考之前的博客 http:/ ...
- WebAPI的自动化监控和预警
Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警 前言 这次主要分享通过Metrics.net + influxdb + grafana 构建Web ...
- sicily 1031 Campus(图算法)
Description At present, Zhongshan University has 4 campuses with a total area of 6.17 square kilomet ...
- ZooKeeper Recipes and Solutions
原文地址:http://zookeeper.apache.org/doc/current/recipes.html 参考:https://zookeeper.apache.org/doc/trunk/ ...
- java操作文件创建、删除
java操作文件创建.删除: package test; import java.io.File; import java.io.IOException; import org.slf4j.Logge ...
- SpringMVC学习一:SpringMVC的配置
SpringMVC的配置主要分为两部分: 1.xml文件配置 2.注解的配置 SpringMVC配置的步骤如下: 1.在将SpringMVC的jar包导入到web项目中后,先配置web.xml 文件. ...