将JSON字符串转换为DataTable

时间:2015-04-10 13:19:03

标签: c# asp.net json datatable json-deserialization

我知道之前已经提出过这样的问题,但我似乎找不到任何有用的问题。

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

以下是我收到的JSON文件示例:

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

我尝试了不同的东西,但是我得到一个空的DataTable,或者许多不同的错误。

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

给我:

  

读取DataTable时出现意外的JSON令牌。预期的StartArray,得到了StartObject。路径&#39;&#39;,第1行,第1位。

任何帮助都将不胜感激。

我已经使用JSON 2 C#创建了一个类,并尝试使用

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

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

有解决方法吗?

2 个答案:

答案 0 :(得分:1)

JSON无效,请使用此选项检查:http://jsonlint.com/

应该是

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

答案 1 :(得分:0)

使用Json 2 C#创建您的课程,就像@Plutonix所说,查看数据表的here