zoukankan      html  css  js  c++  java
  • json string 与object 之间的转化

    1.将json string转化成object

       1:  public static T GetObjectFromJson<T>(string jsonString)
       2:  {
       3:      DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
       4:      MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
       5:      var obj = (T)serializer.ReadObject(stream);
       6:      stream.Close();
       7:      return obj;
       8:  }
     
     

    2.将obect转化成json string

     

       1:  public static string GetJsonFromObject<T>(T obj)
       2:  {
       3:      DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));
       4:      using (MemoryStream ms = new MemoryStream())
       5:      {
       6:          json.WriteObject(ms, obj);
       7:          string szJson = Encoding.UTF8.GetString(ms.ToArray());
       8:          return szJson;
       9:      }
      10:  }

    注意,定义的对象T一定要和json 字符串一一对应

    e.g: json string {"ID":1,"Items":[{"Name":"22"},{"Name":"23"}]}

    定义的对象就必须是:

       1:  [DataContract]
       2:  class Demo
       3:  {
          [DataMember]
       4:      public int ID { get; set; }
       5:      [DataMember]
       6:      public List<Student> Items { get; set; }
       7:  }
       8:   
       9:  [DataContract]
      10:  class Student
      11:  {
      12:      [DataMember]
      13:      public string Name { get; set; }
      14:  }


    其中T就是Demo 这个类

    使用:

       1:   string json = "{"ID":1,"Items":[{"Name":"22"},{"Name":"23"}]}";
       2:   Demo obj = GetObjectFromJson<Demo>(json);
  • 相关阅读:
    Linux命令行常用符号
    IP地址详解
    黑帽子白帽子问题
    点香测算时间
    Linux系统中的压缩和打包
    Python冒泡排序
    Python选择排序
    linux 文件三大特殊权限(SUID SGID SBIT)
    预处理器之头文件嵌套包含最大层数
    一不小心就对未分配的内存进行访问和修改
  • 原文地址:https://www.cnblogs.com/lavenvsxiaoye/p/3525396.html
Copyright © 2011-2022 走看看