CSharp · Console
using System;
using System.Data;
using System.Linq;
using System.Xml;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
using Formatting = Newtonsoft.Json.Formatting;
public class Program
{
public static void Main()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.TableName = "Table";
dt.Columns.Add("id");
dt.Columns.Add("value");
dt.Rows.Add("1", "hi");
ds.Tables.Add(dt);
var dsString = JsonConvert.SerializeObject(ds);
var model = JsonConvert.DeserializeObject<DataTableToModel>(dsString);
//Console.WriteLine(model.ModelProperty.id);
//Console.WriteLine(model.ModelProperty.value);
var json = JsonConvert.SerializeObject(model.ModelProperty);
Console.WriteLine(json);
}
}
public class DataTableToModel
{
/// <summary>
/// Deserialize from DataTable, set ModelProperty from first row
/// </summary>
[JsonProperty("Table")]
private List<Model> ModelSetter { set { this.ModelProperty = value.FirstOrDefault(); } }
/// <summary>
/// Serialize Model
/// </summary>
[JsonProperty("Model")]
public Model ModelProperty { get; set; }
}
/// <summary>
/// Model that has id and value properties expected from DataTable
/// </summary>
public class Model
{
[JsonProperty("id")]
public string id { get; set; }
[JsonProperty("value")]
public string value { get; set; }
}