Newtonsoft.Json 与 DataTable的相互转换

 

1.这里下载:http://www.newtonsoft.com/products/json/ 

安装: 
   解压下载文件,得到Newtonsoft.Json.dll 
   在项目中添加引用 
2.引入命名空间 

创建一个DataTable对象:

DataTable dt = new DataTable();
        DataColumn dcName = new DataColumn("Name");
        DataColumn dcAge = new DataColumn("Age");
        DataColumn dcCity = new DataColumn("City");

        dt.Columns.Add(dcName);
        dt.Columns.Add(dcAge);
        dt.Columns.Add(dcCity);
        for (int i = 0; i < 10; i++)
        {
            DataRow dr = dt.NewRow();
            dr[0] = "Name" + i;
            dr[1] = "Age" + i;
            dr[2] = "City" + i;
            dt.Rows.Add(dr);
        }

 转换为json格式:

string json = JsonConvert.SerializeObject(dt);
Console.WriteLine(json);

json格式转换为DataTable:

 DataTable dt1 = JsonConvert.DeserializeObject<DataTable>(json);
 for (int i = 0; i < dt1.Rows.Count; i++)
 {
     DataRow dr = dt1.Rows[i];
     Console.WriteLine("{0}\t{1}\t{2}\t", dr[0], dr[1], dr[2]);
 }

完整的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Newtonsoft.Json;

namespace test01
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            DataColumn dcName = new DataColumn("Name");
            DataColumn dcAge = new DataColumn("Age");
            DataColumn dcCity = new DataColumn("City");

            dt.Columns.Add(dcName);
            dt.Columns.Add(dcAge);
            dt.Columns.Add(dcCity);
            for (int i = 0; i < 10; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = "Name" + i;
                dr[1] = "Age" + i;
                dr[2] = "City" + i;
                dt.Rows.Add(dr);
            }
            string json = JsonConvert.SerializeObject(dt);
            this.richTextBox1.Text = json;
        }
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。