如何在.net中将实体类与json进行转换
创始人
2024-11-28 10:42:27
0次

.net实体类与json相互转换时,注意要点:
1.jsonhelp编写时候添加的引用。System.Runtime.Serialization.Json; 
2.实体类需声明为public 

jsonhelp代码: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization.Json;
using System.IO;
namespace JsonTest
{
  class JsonHelp
  {
    public JsonHelp()
  {

    //

    // TODO: Add constructor logic here

    //

  }
  /// 
  /// 把对象序列化 JSON 字符串 
  /// 
  /// 对象类型
  /// 对象实体
  /// JSON字符串
  public static string GetJson(T obj)
  {
    //记住 添加引用 System.ServiceModel.Web 
    /**
     * 如果不添加上面的引用,System.Runtime.Serialization.Json; Json是出不来的哦
     * */
    DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));
    using (MemoryStream ms = new MemoryStream())
    {
      json.WriteObject(ms, obj);
      string szJson = Encoding.UTF8.GetString(ms.ToArray());
      return szJson;

    }

  }

  /// 
  /// 把JSON字符串还原为对象
  /// 
  /// 对象类型
  /// JSON字符串
  /// 对象实体
  public static T ParseFormJson(string szJson)
  {
    T obj = Activator.CreateInstance();
    using (MemoryStream ms = new MemoryStream (Encoding.UTF8.GetBytes(szJson)))
    {
      DataContractJsonSerializer dcj = new DataContractJsonSerializer(typeof(T));
      return (T)dcj.ReadObject(ms);
    }
  }
 

  }

}

实体类代码: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JsonTest
{
 public class testData
  {
    public testData()

  {

  }
  public int Id { get; set; }
  public string Name { get; set; }
  public string Sex { get; set; }
  }
}

控制台应用程序测试代码: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JsonTest

{
  class Program

  {
    static void Main(string[] args)
    {

      //实体类转json
      testData t1 = new testData();
      t1.Id = 1;
      t1.Name = "001姓名";
      t1.Sex = "男";
      testData t2 = new testData();
      t2.Id = 2;
      t2.Name = "002姓名";
      t2.Sex = "男";
      testData t3 = new testData();
      t3.Id = 3;
      t3.Name = "003姓名";
      t3.Sex = "男";
      List tlist = new List();
      tlist.Add(t1);
      tlist.Add(t2);
      tlist.Add(t3);
     Console.WriteLine(JsonHelp.GetJson>(tlist));

      // Console.ReadKey();
      //json转实体类

     List tl = JsonHelp.ParseFormJson >(JsonHelp.GetJson>(tlist));
     Console.WriteLine(tl.Count);
     Console.WriteLine(tl[0].Name);
     Console.ReadKey();
    }

  }
}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...