繁体   English   中英

如何将 JSON 数据转换为 DataTable

[英]How to Convert JSON Data to 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   

并将成功值读入变量

我想在我的代码中使用成功变量并在 gridview 中显示表格。

我已经尝试过这段代码,但它不起作用:

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

Json.NET 支持将数据表序列化为对象数组,但是 JSON 中的数据表嵌套在"Data"属性中,因此您需要将DataTable包装在一些根 ZA8CFDE6331BD59EB2AC966F8911C4B6 中。 匿名 object 应该足够了:

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

或者,您可以像这样引入通用根 model:

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

并做:

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

演示小提琴在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM