zoukankan      html  css  js  c++  java
  • Json序列化与反序列化(对象与Json字符串的转换)--C#

     1 public class JsonHelper
     2     {
     3 
     4         #region Json序列化与反序列化
     5 
     6         /// <summary>
     7         /// 将json转化为对象
     8         /// (需要提前构造好结构一致的Model接取数据,且同名字段才可接取数据)
     9         /// </summary>
    10         /// <typeparam name="T">对象类型</typeparam>
    11         /// <param name="json">Json字符串</param>
    12         /// <returns></returns>
    13         public T ConvertJsonToObject<T>(string json)
    14         {
    15             try
    16             {
    17                 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));  //传入对象类型               
    18                 MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json));   //把Json传入内存流中保存               
    19                 T obj = (T)serializer.ReadObject(stream);   //使用ReadObject方法反序列化成对象
    20                 return obj;
    21             }
    22             catch(Exception ex) { throw ex; }
    23             
    24         }
    25 
    26         /// <summary>
    27         /// 将对象转化为Json
    28         /// </summary>
    29         /// <param name="obj"></param>
    30         /// <returns></returns>
    31         public string ConvertObjectToJson(object obj)
    32         {
    33             try
    34             {
    35                 string jsonStr = JsonConvert.SerializeObject(obj);  //序列化对象
    36                 return jsonStr;
    37             }
    38             catch(Exception ex) { throw ex; }
    39         }
    40 
    41         #endregion

    注:所用的为using Newtonsoft.Json,需要在VS包管理器下载安装

  • 相关阅读:
    VS2005编译mysql5.1.68
    用boost库实现traceroute小工具
    linux内核选项部分翻译
    linux 内核中的锁机制RCU
    先装windows 还是linux ?
    U盘装ubuntu
    编译linux内核3.0
    root密码丢失了怎么办?
    linux配置文件
    新一代linux文件系统btrfs
  • 原文地址:https://www.cnblogs.com/xiaomengshan/p/11282502.html
Copyright © 2011-2022 走看看