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
  • 相关阅读:
    栈和队列
    链表
    map
    二叉平衡树旋转
    二叉排序树详情
    红黑树详情
    查并集
    动态规划
    位操作
    字典树
  • 原文地址:https://www.cnblogs.com/anmoon/p/1809469.html
Copyright © 2011-2022 走看看