public class JsonHelper
{
/// <summary>
/// 序列化对象为json字符串
/// </summary>
public static string JsonSerializer<T>(T t)
{
var serializer = new DataContractJsonSerializer(t.GetType());
using (var ms = new MemoryStream())
{
serializer.WriteObject(ms, t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// 反序列化json字符串
/// </summary>
public static T JsonDeserialize<T>(string json)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return (T)serializer.ReadObject(ms);
}
}
/// <summary>
/// 序列化对象为xml字符串
/// </summary>
public static string XmlSerializer<T>(T t)
{
var xs = new XmlSerializer(typeof(T));
using (var ms = new MemoryStream())
{
xs.Serialize(ms, t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// 序列化对象为xml字符串
/// </summary>
public static T XmlDeserialize<T>(string xml)
{
using (StringReader sr = new StringReader(xml))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(sr);
}
}
}
{
//Dictionary<string, string> dic1 = new Dictionary<string, string>();
//dic1.Add("name1", "value1");
//dic1.Add("name2", "value2");
//Dictionary<string, string> dic2 = new Dictionary<string, string>();
//dic2.Add("name1", "value1");
//dic2.Add("name2", "value2");
Dictionary<string, string> dic = new Dictionary<string, string>();
//dic.Add("name1", dic1);
//dic.Add("name2", dic2);
dic.Add("name1", "value1");
dic.Add("name2", "value2");
string dicJson = JsonHelper.JsonSerializer<Dictionary<string, string>>(dic);
Console.Write(dicJson);
var dicObject = JsonHelper.JsonDeserialize<Dictionary<string, string>>(dicJson);
Console.Write(dicObject["name1"]);
XmlTest xmlTest = new XmlTest();
xmlTest.AA = "aa";
xmlTest.BB = "bb";
string dicXml = JsonHelper.XmlSerializer<XmlTest>(xmlTest);
Console.Write(dicXml);
var dicXmlObject = JsonHelper.XmlDeserialize<XmlTest>(dicXml);
Console.Write(xmlTest.AA);
List<string> strList = new List<string>();
strList.Add("aa");
string dicXml2 = JsonHelper.XmlSerializer<List<string>>(strList);
Console.Write(dicXml2);
var dicObjectXml2 = JsonHelper.XmlDeserialize<List<string>>(dicXml2);
Console.Write(strList[0]);
}
{
/// <summary>
/// 序列化对象为json字符串
/// </summary>
public static string JsonSerializer<T>(T t)
{
var serializer = new DataContractJsonSerializer(t.GetType());
using (var ms = new MemoryStream())
{
serializer.WriteObject(ms, t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// 反序列化json字符串
/// </summary>
public static T JsonDeserialize<T>(string json)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return (T)serializer.ReadObject(ms);
}
}
/// <summary>
/// 序列化对象为xml字符串
/// </summary>
public static string XmlSerializer<T>(T t)
{
var xs = new XmlSerializer(typeof(T));
using (var ms = new MemoryStream())
{
xs.Serialize(ms, t);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
/// <summary>
/// 序列化对象为xml字符串
/// </summary>
public static T XmlDeserialize<T>(string xml)
{
using (StringReader sr = new StringReader(xml))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(sr);
}
}
}
http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html
private static void Main(string[] args)
{
//Dictionary<string, string> dic1 = new Dictionary<string, string>();
//dic1.Add("name1", "value1");
//dic1.Add("name2", "value2");
//Dictionary<string, string> dic2 = new Dictionary<string, string>();
//dic2.Add("name1", "value1");
//dic2.Add("name2", "value2");
Dictionary<string, string> dic = new Dictionary<string, string>();
//dic.Add("name1", dic1);
//dic.Add("name2", dic2);
dic.Add("name1", "value1");
dic.Add("name2", "value2");
string dicJson = JsonHelper.JsonSerializer<Dictionary<string, string>>(dic);
Console.Write(dicJson);
var dicObject = JsonHelper.JsonDeserialize<Dictionary<string, string>>(dicJson);
Console.Write(dicObject["name1"]);
XmlTest xmlTest = new XmlTest();
xmlTest.AA = "aa";
xmlTest.BB = "bb";
string dicXml = JsonHelper.XmlSerializer<XmlTest>(xmlTest);
Console.Write(dicXml);
var dicXmlObject = JsonHelper.XmlDeserialize<XmlTest>(dicXml);
Console.Write(xmlTest.AA);
List<string> strList = new List<string>();
strList.Add("aa");
string dicXml2 = JsonHelper.XmlSerializer<List<string>>(strList);
Console.Write(dicXml2);
var dicObjectXml2 = JsonHelper.XmlDeserialize<List<string>>(dicXml2);
Console.Write(strList[0]);
}