如何在.net Core 3.0中反序列化json

Dot*_*der 1 json json.net .net-core blazor

我在使用.Net Core 3.0 Blazor应用程序反序列化json时遇到了一些麻烦。

我正在使用带有Visual Studio Preview 2019的.Net Core 3.0 Blazor框架

{
    "cols": [
        "ID",
        "LastName",
        "Firstname",
        "middlename",
        "Suffix",
        "Title"

    ],
    "rows": [
        [
            "90",
            "Dada",
            "Mama",
            "",
            "",
            ""

        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

预期结果:我想使用blazor将这个json作为Web表格中的表格动态加载。我不介意为此使用任何UI框架,例如devexpress或telerik。

id LastNmae名中间名后缀标题

90达达妈妈

预期结果

dan*_*era 5

在Blazor上完成的步骤:

1.-添加Newtonsoft到您的Blazor项目中(对于Blazor客户端wasm也可以,因为Newtonsoft是netstandard):

dotnet add package Newtonsoft.Json
Run Code Online (Sandbox Code Playgroud)

2.-引用库,对反序列化的对象进行反序列化和迭代:

@page "/counter"

@using Newtonsoft.Json

<table >
    <tr>
        @foreach (var c in dyn.cols)
        {
            <td style="border: 1px solid black;">@c.Value</td>    
        }
    </tr>
    @foreach (var r in dyn.rows)
    {
        <tr>
            @foreach (var d in r)
            {
                <td style="border: 1px solid black;">@d.Value</td>    
            }
        </tr>
    }
</table>

@code {
    dynamic dyn;
    string json_str = @" your json ";

    protected override void OnInitialized()
    {
          dyn = JsonConvert.DeserializeObject(json_str);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

其他资讯:

样本的整个json:

@code {
    dynamic dyn;
    string json_str = @"
        {
            ""cols"": [
                ""ID"",
                ""LastName"",
                ""Firstname"",
                ""middlename"",
                ""Suffix"",
                ""Title""

            ],
            ""rows"": [
                [
                    ""90"",
                    ""Dada"",
                    ""Mama"",
                    """",
                    """",
                    """"
                ],
                [
                    ""91"",
                    ""Dada1"",
                    ""Mama1"",
                    """",
                    """",
                    """"
                ],
            ]
        }
    ";

Run Code Online (Sandbox Code Playgroud)