簡體   English   中英

如何在 C# 的 Winform tabPage 上顯示反序列化的 Json 結果

[英]How to display deserialized Json result on Winform tabPage in C#

請我在這里需要你的幫助,我無法編寫邏輯來在 Winforms C# 的 tabPage 上顯示反序列化的 JSON 結果

    public Form1()
    {
       

        var path = @"C:\Users\elitebook\source\repos\ExamCBT\question.json";

        string jsonFile = File.ReadAllText(path);

        Question q = JsonConvert.DeserializeObject<Question>(jsonFile);

          InitializeComponent();
       
    }

 jsonFile = tabPage2.ToString();

您可以使用這些方法對 JSON 進行序列化和反序列化。 只需下載Newtonsoft.Json NuGet package。

static class FileHelper
{
    public static void JsonSerialize(object obj, string fileName)
    {
        using (var sw = new System.IO.StreamWriter($"{fileName}.json"))
            using (var jw = new Newtonsoft.Json.JsonTextWriter(sw))
            {
                var serializer = new Newtonsoft.Json.JsonSerializer();
                jw.Formatting = Newtonsoft.Json.Formatting.Indented;
                serializer.Serialize(jw, obj);
            }
    }
    public static void JsonDeserialize(out string/*object, List<>, or something else*/ obj, string fileName)
    {
        using (var sr = new System.IO.StreamReader($"{fileName}.json"))
        {
            using (var jr = new Newtonsoft.Json.JsonTextReader(sr))
            {
                var serializer = new Newtonsoft.Json.JsonSerializer();
                try
                {
                    obj = serializer.Deserialize<string /*object, List<>, or something else...*/>(jr);
                }
                catch
                {
                    obj = null;
                }
            }
        }
    }
}

您可以像這樣將 JSON 數據添加到TabPage

Label label = new Label(); // label can be textbox, button or something else...
FileHelper.JsonDeserialize(out string /*object, List<>, or something else...*/ data, "test");
label.Text = data //data type is string
tabPage1.Controls.Add(label);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM