zoukankan      html  css  js  c++  java
  • C# json字符串转DataTable

    我的json格式是这样的:

    {"success":true,"data":[{"C4":"英语","C3":"","C1":"99","C2":"CCC"},{"C4":"数学","C3":"","C1":"55","C2":"DDD"}]}

    转出来的结果:

    代码:

    1. 需要引用 Newtonsoft.Json.dll , 可以去网上下载

    2.引入System.Web.Extensions 组件

    引用  :

    using System.Text.RegularExpressions;
    using System.Web.Script.Serialization;

    3.

    public  DataTable   JsonToDataTable(string strJson)
            {
                 DataTable dt =null ;
                try
                {
                    JObject jo = (JObject)JsonConvert.DeserializeObject(strJson);
                    bool success = (bool)jo["success"];
                    if (!success)
                    {
                        return null;
                    }
                    JArray ja = (JArray)jo["data"];
                    dt = ToDataTable(ja.ToString());
                }
                catch (Exception ex)
                {
                    return null;
                }
                return dt;
            }

    方法ToDataTable

    public  DataTable ToDataTable( string json)  
            {
                DataTable dataTable = new DataTable();  //实例化
                DataTable result;
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
                ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
                if (arrayList.Count > 0)
                {
                    foreach (Dictionary<string, object> dictionary in arrayList)
                    {
                        //if (dictionary.Keys.Count<string>() == 0)
                        if (dictionary.Keys.Count == 0)
                        {
                            result = dataTable;
                            return result;
                        }
                        if (dataTable.Columns.Count == 0)
                        {
                            foreach (string current in dictionary.Keys)
                            {
                                dataTable.Columns.Add(current, dictionary[current].GetType());
                            }
                        }
                        DataRow dataRow = dataTable.NewRow();
                        foreach (string current in dictionary.Keys)
                        {
                            dataRow[current] = dictionary[current];
                        }
    
                        dataTable.Rows.Add(dataRow);
                    }
                }
                result = dataTable;
                return result;
            }
  • 相关阅读:
    基于Servlet+JSP+JavaBean开发
    jsp&servlet报红线javax.servlet.jsp.XXXX cannot be resolved to a type类似错误解决办法
    java为什么要定义接口等相关解释
    SpringMVC的注解方式
    MyBatis映射
    hibernate、JDBC 实现 oracle ID 的自动增加 功能
    SSH框架的JSP网站添加数据为什么没反应
    又考完一科 又过完一年
    一个招标书文件的需求分析
    《需求分析》读后感之二
  • 原文地址:https://www.cnblogs.com/Marvellous/p/4062465.html
Copyright © 2011-2022 走看看