将 JSON 字符串转换为 DataTable

Converting JSON string to DataTable

我知道以前有人问过这种问题,但我似乎找不到任何有效的方法。

我正在尝试将 JSON 字符串转换为数据表,或我可以在 C# 上使用的任何其他形式。

这是我收到的 JSON 文件的示例:

{ "DatabaseName" : {"Employees": [{"Full-Name":"John Smith","Address":["123 Main St", "Apt 202"],"City":"NYC"}]}}

我尝试了不同的方法,但要么得到一个空的数据表,要么出现许多不同的错误。

Object jObject = JsonConvert.DeserializeObject<JObject>(Response.Content);
DataTable dsResult = JsonConvert.DeserializeObject<DataTable>(jObject.ToString());

给我:

Unexpected JSON token when reading DataTable. Expected StartArray, got StartObject. Path '', line 1, position 1.

如有任何帮助,我们将不胜感激。

我也使用 JSON 2 C# 创建了一个 class,并尝试使用

对其进行转换
JsonConvert.DeserializeObject<Employees>(Response.Content);

但是 classes 不允许我创建变量 public string Full-Name 因为我不能在创建变量时使用 - 。

有解决办法吗?

对数据 Table 使用 Json 2 C# to create your class and like @Plutonix said look here

那个JSON是无效的,用这个来检查:http://jsonlint.com/

应该是

{
    "DatabaseName": "Employees",
    "Rows": [
        {
            "FullName": "John Smith",
            "Address": [
                "123 Main St",
                "Apt 202"
            ],
            "City": "NYC"
        }
    ]
}