zoukankan      html  css  js  c++  java
  • c# json TO xml

    using System.IO;
    using System.Text;
    using System.Xml.Serialization;
    using System.Xml;
    using System.Runtime.Serialization.Json;

    namespace Common.Core
    {
    public class SerializationHelper
    {
    private static string XmlSerialize(object o)
    {
    XmlSerializer ser = new XmlSerializer(o.GetType());
    System.IO.MemoryStream mem = new MemoryStream();
    XmlTextWriter writer = new XmlTextWriter(mem, Encoding.UTF8);
    XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
    ns.Add("", "");
    ser.Serialize(writer, o, ns);
    writer.Close();
    return Encoding.UTF8.GetString(mem.ToArray());
    }

    private static T XmlDeserialize<T>(string s)
    {
    XmlDocument xdoc = new XmlDocument();
    try
    {
    xdoc.LoadXml(s);
    XmlNodeReader reader = new XmlNodeReader(xdoc.DocumentElement);
    XmlSerializer ser = new XmlSerializer(typeof(T));
    object obj = ser.Deserialize(reader);
    return (T)obj;
    }
    catch
    {
    return default(T);
    }
    }

    private static string JsonSerialize(object o)
    {
    using (var ms = new MemoryStream())
    {
    new DataContractJsonSerializer(o.GetType()).WriteObject(ms, o);
    return Encoding.UTF8.GetString(ms.ToArray());
    }
    }

    private static T JsonDeserialize<T>(string s)
    {
    using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(s)))
    {
    return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(ms);
    }
    }

    /// <summary>
    /// 将对象根据格式(XML/JSON)序列化成字符串结果
    /// </summary>
    /// <param name="o">目标对象</param>
    /// <param name="format">输出格式</param>
    /// <returns></returns>
    public static string Serialize(object o, Format format)
    {
    if (format == Format.Xml)
    {
    return SerializationHelper.XmlSerialize(o);
    }
    else
    {
    return SerializationHelper.JsonSerialize(o);
    }
    }

    /// <summary>
    /// 将字符串根据格式(XML/JSON)反序列化成指定类型的对象
    /// </summary>
    /// <typeparam name="T">指定类型</typeparam>
    /// <param name="s">目标字符串</param>
    /// <param name="format">输入格式</param>
    /// <returns></returns>
    public static T Deserialize<T>(string s, Format format)
    {
    if (format == Format.Xml)
    {
    return SerializationHelper.XmlDeserialize<T>(s);
    }
    else
    {
    return SerializationHelper.JsonDeserialize<T>(s);
    }
    }
    }
    }

  • 相关阅读:
    mac redis 安装及基本设置 python操作redis
    mac webstorm自动编译typescript配置
    MySQL数据库的基本操作
    python 面试基础考试题收集
    pyhon 列表的增删改查
    python 文件读取方法详解
    MAC下绕开百度网盘限速下载的方法,三步操作永久生效
    浏览器窗口输入网址后发生的一段事情(http完整请求)
    CMDB
    django适当进阶篇
  • 原文地址:https://www.cnblogs.com/FredTang/p/4338105.html
Copyright © 2011-2022 走看看