需要将JSON转换为datatable

时间:2015-07-21 14:20:20

标签: c# json json.net

我的传入JSON格式如下:

{
    "users": [
        {
            "radio_id": "123582",
            "callsign": "ABCD",
            "name": "First Last",
            "city": "Dortmund",
            "state": "Nordrhein-Westfalen",
            "country": "Germany",
            "home_rptr": "W2VL",
            "remarks": "None"
        },
        {
            "radio_id": "789456",
            "callsign": "EFG",
            "name": "Name Here",
            "city": "Dortmund",
            "state": "Nordrhein-Westfalen",
            "country": "Germany",
            "home_rptr": "W2VL",
            "remarks": "None"
        }
    ]
}

它来自一个Web请求,我捕获到一个名为dataReceived的字符串。然后我使用这行代码转换为数据表。

DataTable dtData = (DataTable)JsonConvert.DeserializeObject(dataReceived, (typeof(DataTable)));

我收到的错误是: 读取DataTable时出现意外的JSON令牌。预期的StartArray,得到了StartObject。路径'',第1行,第1位。

我怀疑我的问题是数据在数组中,但我不知道如何解决这个问题。我的目标是在json中有一个表,每行包含一个“users”对象。

有人能把我推向正确的方向吗?

1 个答案:

答案 0 :(得分:2)

var dt = JObject.Parse(json)["users"].ToObject<DataTable>();

就是这样。