Вы можете использовать библиотеку JSON.NET: http://json.codeplex.com/ для сериализации / десериализации DataTable.
string json = JsonConvert.SerializeObject(table);
, который сериализует что-то вроде этого:
[ { "Column1": "Row Value", "Column2": "2" } ]
Если вам нужно сериализовать дополнительную информацию о DataTable, например, схема столбца, первичный ключ, имя таблицы, тогда вы можете использовать пользовательский конвертер, который я написал: https://github.com/chris-herring/DataTableConverter. Используйте его так:
string json = JsonConvert.SerializeObject(table, new Serialization.DataTableConverter());
DataTable table = JsonConvert.DeserializeObject<DataTable>(json, new Serialization.DataTableConverter());
, который сериализует что-то вроде этого:
{
"TableName": "TestTable",
"Columns": [
{
"AllowDBNull": false,
"AutoIncrement": true,
"AutoIncrementSeed": 2,
"AutoIncrementStep": 1,
"Caption": "PrimaryKey",
"ColumnName": "PrimaryKey",
"DataType": "Int32",
"DateTimeMode": "UnspecifiedLocal",
"DefaultValue": null,
"MaxLength": -1,
"Ordinal": 0,
"ReadOnly": false,
"Unique": true
}
],
"Rows": [
[
1
],
[
2
],
[
3
]
],
"PrimaryKey": ["PrimaryKey"]
}