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
  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/anmoon/p/1809469.html
Copyright © 2011-2022 走看看