zoukankan      html  css  js  c++  java
  • c#3.5关于JSON简单操作的实用帮助类(泛型实现)

    ps:需要添加System.ServiceModel.Web,System.Runtime.Serialization

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Reflection;
    using System.IO;
    using System.Runtime.Serialization.Json;

    namespace DotNet.Common.Util
    {
    /// <summary>
    /// Json操作帮助类
    /// </summary>
    public static class JsonHelper
    {
    #region DataContractJsonSerializer

    /// <summary>
    /// 对象转换成json
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="jsonObject">需要格式化的对象</param>
    /// <returns>Json字符串</returns>
    public static string DataContractJsonSerialize<T>(T jsonObject)
    {
    DataContractJsonSerializer serializer
    = new DataContractJsonSerializer(typeof(T));
    string json = null;
    using (MemoryStream ms = new MemoryStream()) //定义一个stream用来存发序列化之后的内容
    {
    serializer.WriteObject(ms, jsonObject);
    json
    = Encoding.UTF8.GetString(ms.GetBuffer()); //将stream读取成一个字符串形式的数据,并且返回
    ms.Close();
    }
    return json;
    }

    /// <summary>
    /// json字符串转换成对象
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="json">要转换成对象的json字符串</param>
    /// <returns></returns>
    public static T DataContractJsonDeserialize<T>(string json)
    {
    DataContractJsonSerializer serializer
    = new DataContractJsonSerializer(typeof(T));
    T obj
    = default(T);
    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
    {
    obj
    = (T)serializer.ReadObject(ms);
    ms.Close();
    }
    return obj;
    }

    #endregion

    }
    }

    赋予程序生命,还我自由河山!~ --CosMosGhost
  • 相关阅读:
    mybatis 中的稍微复杂些的sql语句
    Why doesn't Genymotion run on Windows 10?
    java.lang.NoSuchMethodError: 属于jar包冲突
    sqlserver修改某列为行号
    手机App开发
    java连接SQLserver
    svn忽略target
    JaxWsDynamicClientFactory弃用了,改成org.codehaus.xfire.client;
    FileDataSource java的文件操作
    解决Navicat无法连接Oracle的问题
  • 原文地址:https://www.cnblogs.com/anmoon/p/1809469.html
Copyright © 2011-2022 走看看