如何将JSON数据转换为DataTable



我有如下JSON数据:

{
"Data":[
{
"Customer":"C1",
"ID":"11111",
"Desc":"Row 1",
"Price":"123456"
},
{
"Customer":"C2",
"ID":"22222",
"Desc":"Row 2",
"Price":"789012"
},
{
"Customer":"C3",
"ID":"33333",
"Desc":"Row 3",
"Price":"345678"
}
],
"Success":true
}

我如何将这些数据转换成像这样的C#数据表

---------------------------------------------
Customer    |  ID       |  Desc    |   Price  
---------------------------------------------
C1          | 11111     | Row 1    |  123456   
C2          | 22222     | Row 2    |  789012   
C3          | 33333     | Row 3    |  345678   

并读取变量中的Success

我想在代码中使用Success变量,并在网格视图中显示该表。

我试过这个代码,但它不起作用:

DataTable gdata = JsonConvert.DeserializeObject<DataTable>(result);

Json。NET支持将数据表序列化为对象数组,但是JSON中的数据表嵌套在"Data"属性中,因此需要将DataTable封装在某个根对象中。一个匿名对象就足够了:

var root = JsonConvert.DeserializeAnonymousType(result, new { Data = default(DataTable), Success = default(bool) });
var gdata = root?.Data;
var success = root?.Success ?? false;

或者,你可以引入一个通用的根模型,比如:

public class DataRoot<T>
{
public T Data { get; set; }
public bool Success { get; set; }
}

做:

var root = JsonConvert.DeserializeObject<DataRoot<DataTable>>(result);

在这里演示小提琴。

相关内容

  • 没有找到相关文章

最新更新