如何使用json.net转换数据表到JSON字符串? [英] How to convert datatable to json string using json.net?

查看:142
本文介绍了如何使用json.net转换数据表到JSON字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用数据表转换json​​.net到JSON?任何建议...我已经下载了必需的二进制文件...我应该使用哪一个类来获得我的数据表转化为JSON?
迄今为止,用这种方法通过将数据表我得到JSON字符串...

 公共字符串GetJSONString(DataTable的表)
    {
        StringBuilder的headStrBuilder =新的StringBuilder(table.Columns.Count * 5); // pre-分配一些空间,默认为16字节
        的for(int i = 0; I< table.Columns.Count;我++)
        {
            headStrBuilder.AppendFormat(\\{0} \\:\\{0} {1}¾\\,table.Columns [I] .Caption,我);
        }
        headStrBuilder.Remove(headStrBuilder.Length - 1,1); //修剪掉。最后,        StringBuilder的SB =新的StringBuilder(table.Rows.Count * 5); // pre-分配一些空间
        sb.Append({\\);
        sb.Append(table.TableName);
        sb.Append(\\:[);
        的for(int i = 0; I< table.Rows.Count;我++)
        {
            字符串tempStr = headStrBuilder.ToString();
            sb.Append({);
            对于(INT J = 0; J< table.Columns.Count; J ++)
            {
                table.Rows [I] [J] = table.Rows [I] [J]的ToString()更换(',)。
                tempStr = tempStr.Replace(table.Columns [J] + j.ToString()+¾,table.Rows [I] [J]的ToString());
            }
            sb.Append(tempStr +});
        }
        sb.Remove(sb.Length - 1,1); //最后的修整,
        sb.Append(]});
        返回sb.ToString();
    }

现在我想用json.net的,但不知道从何处着手....


解决方案

  JSON字符串= JsonConvert.SerializeObject(表,Formatting.Indented);

编辑:你不需要缩进格式,当然,只是让漂亮和可读性

How to convert datatable to json using json.net? Any suggestion... I ve downloaded the necessary binaries... Which class should i use to get the conversion of my datatable to json? Thus far used this method to get json string by passing my datatable...

public string GetJSONString(DataTable table)
    {
        StringBuilder headStrBuilder = new StringBuilder(table.Columns.Count * 5); //pre-allocate some space, default is 16 bytes
        for (int i = 0; i < table.Columns.Count; i++)
        {
            headStrBuilder.AppendFormat("\"{0}\" : \"{0}{1}¾\",", table.Columns[i].Caption, i);
        }
        headStrBuilder.Remove(headStrBuilder.Length - 1, 1); // trim away last ,

        StringBuilder sb = new StringBuilder(table.Rows.Count * 5); //pre-allocate some space
        sb.Append("{\"");
        sb.Append(table.TableName);
        sb.Append("\" : [");
        for (int i = 0; i < table.Rows.Count; i++)
        {
            string tempStr = headStrBuilder.ToString();
            sb.Append("{");
            for (int j = 0; j < table.Columns.Count; j++)
            {
                table.Rows[i][j] = table.Rows[i][j].ToString().Replace("'", "");
                tempStr = tempStr.Replace(table.Columns[j] + j.ToString() + "¾", table.Rows[i][j].ToString());
            }
            sb.Append(tempStr + "},");
        }
        sb.Remove(sb.Length - 1, 1); // trim last ,
        sb.Append("]}");
        return sb.ToString();
    }

Now i thought of using json.net but dont know where to get started....

解决方案

string json = JsonConvert.SerializeObject(table, Formatting.Indented);

Edit: You don't need indented formatting, of course, but it makes it nice and readable.

这篇关于如何使用json.net转换数据表到JSON字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆