簡體   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