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;
        }
    }
}
时间: 2024-09-29 04:00:22

Newtonsoft.Json 与 DataTable的相互转换的相关文章

Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据

1.这里下载:http://www.newtonsoft.com/products/json/ 安装:    1.解压下载文件,得到Newtonsoft.Json.dll    2.在项目中添加引用 2.引入命名空间 using Newtonsoft.Json; using Newtonsoft.Json.Converters; 3.把datatable转换成json格式 public string GetAllCategory() { string result = ""; Data

Newtonsoft.Json高级用法

手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机APP端只用到了其中7个字段,剩余9个字段的数据全部都是多余的,如果接口返回数据为40K大小,也就是说大约20K的数据为无效数据,3G网络下20K下载差不多需要1s,不返回无效数据至少可以节约1s的时间,大大提高用户体验.本篇将为大家

Newtonsoft.Json(Json.Net)学习笔记(转)

Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库,通过Nuget获取.(查看原文) 下面是Json序列化和反序列化的简单封装: /// <summary> /// Json帮助类 /// </summary> public class JsonHelper { /// <summary> /// 将对象序列化为JSON格式 /// </summary> /// <param name="o">对

Newtonsoft.Json(Json.Net)学习笔记

Newtonsoft.Json 在Vs2013中就有自带的: 下面是Json序列化和反序列化的简单封装: /// <summary> /// Json帮助类 /// </summary> public class JsonHelper { /// <summary> /// 将对象序列化为JSON格式 /// </summary> /// <param name="o">对象</param> /// <ret

Newtonsoft.Json 高级用法

基本用法 Json.NET是支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity的.下面分别举例说明序列化和反序列化. DataTable: //序列化DataTable DataTable dt = new DataTable(); dt.Columns.Add("Age", Type.GetType("System.Int32")); dt.Columns.Add("Name", Type.G

序列化-Newtonsoft.Json

前言:作为开发人员,对象的序列化恐怕难以避免.楼主也是很早以前就接触过序列化,可是理解都不太深刻,对于用哪种方式去做序列化更是随波逐流,都是项目中原来用的什么方式照着用就好了.总结了下,从使用序列化到现在,用到的无非就是下面几种方式:(1)JavascriptSerializer:(2)DataContract:(3)Newtonsoft.Json 1.序列化方式对应类库介绍: (1)JavaScriptSerializer这个类是.Net内置的,属于System.Web.Script.Seri

[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) JSON序列化利器 Newtonsoft.Json 及 通用Json类

[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) JSON序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能不了解Json.net(Newtonsoft.Json)这款世界级的开源类库,除了拥有良好的性能之外,功能也是非常强大的. 本节会详细说明这个类库.此外,对于不喜欢使用第三方类库的同学,会整理一个基于微软类库的通用Json类. 读前必备: 本节主要介绍一款第三方类库和一个自己整理封装的类库,说起到封装

Newtonsoft.Json高级用法--转载至 焰尾迭 随笔

本人只做搬运工,以这方便自己学习的态度!以下内容均为拷贝! 如有不适请联系本人! 本文原作者:焰尾迭 本文地址:http://www.cnblogs.com/yanweidie/p/4605212.html#commentform 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数据,经过分析一个简单的列表接口每一行数据返回了16个字段,但是手机A

Newtonsoft.Json 的序列化与反序列化

转自:http://www.cnblogs.com/08shiyan/p/3464028.html 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一个DataTable对象,如下: DataTable dt = new DataTable(); DataColumn dcName = new DataColumn("Name"); Da