zoukankan      html  css  js  c++  java
  • c# Json List<T> DataTable 数据相互转换

    最近在项目中用到的相关Json的数据转换

    List<T>转Json

            public static string Obj2Json<T>(T data)
            {
                try
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());
                    using (MemoryStream ms = new MemoryStream())
                    {
                        serializer.WriteObject(ms, data);
                        return Encoding.UTF8.GetString(ms.ToArray());
                    }
                }
                catch
                {
                    return null;
                }
            }
    

    Json转List<T>

            public static Object Json2Obj(String json,Type t)
            {
                try
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);
                    using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
                    {
                       
                        return  serializer.ReadObject(ms);
                    }
                }
                catch
                {
                    return null;
                }
            }
    
     

    DataTable 转Json

            public static string DataTable2Json(DataTable dt)
            {
                if (dt.Rows.Count == 0)
                {
                    return "";
                }
    
                StringBuilder jsonBuilder = new StringBuilder();
                // jsonBuilder.Append("{"); 
                //jsonBuilder.Append(dt.TableName.ToString());  
                jsonBuilder.Append("[");//转换成多个model的形式
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    jsonBuilder.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        jsonBuilder.Append("\"");
                        jsonBuilder.Append(dt.Columns[j].ColumnName);
                        jsonBuilder.Append("\":\"");
                        jsonBuilder.Append(dt.Rows[i][j].ToString());
                        jsonBuilder.Append("\",");
                    }
                    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                    jsonBuilder.Append("},");
                }
                jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
                jsonBuilder.Append("]");
                //  jsonBuilder.Append("}");
                return jsonBuilder.ToString();
            }
    

    单个对象转JSON

            public static T Json2Obj<T>(string json) 
            {
                T obj = Activator.CreateInstance<T>();
                using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)))
                {
                    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
                    return (T)serializer.ReadObject(ms);
                }
            }
    
    
  • 相关阅读:
    .请写出常用的linux指令
    Maven常用命令有哪些
    Maven的工程类型有哪些
    eclipse中Build Path 导入的包和复制到 lib 包的区别
    马踏棋盘算法递归+回溯法实现 C语言
    微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能
    Android_保存用户名和密码码sharedPreference
    Android---XML序列化
    直接拿来用!最火的Android开源项目
    异步http开源框架使用(AsyncHttpClient)
  • 原文地址:https://www.cnblogs.com/mrliuc/p/1934787.html
Copyright © 2011-2022 走看看