直接将JSON转换为DataTable

时间:2016-04-08 12:13:16

标签: c# json serialization json.net

我有一个Json(gridModel)可能是一个Json数组或简单的Json String。我想将它序列化为一个匹配Json的List。使用Newtonsoft.Json。

JArray jGridModel = JArray.Parse(gridModel);
List<ClassName> colModel = jGridModel.ToObject<List<ClassName>>(); 

如果gridModel是一个JSON数组,这可以正常工作,但如果它是一个JSON,它会抛出一个错误。请协助。

另一个问题。而不是将其转换为List,有没有办法直接将JSONArray转换为DataTable,请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

您需要检查代码JArray jGridModel = JArray.Parse(gridModel);生成的对象是否为列表类型请参阅下面的更新代码:

JArray jGridModel = JArray.Parse(gridModel);

// declare your output variable
List<ClassName> colmodel = new List<ClassName>();

// use var so it can accept any output type
var outputObject = jGridModel.ToObject<List<ClassName>>();

// check the type of the output
if (outputObject is ClassName){
   colmodel.Add(outputObject);
}
else{
   colmodel = outputObject;
}
//colmodel is your output which is always a List<ClassName> type