首页 > 解决方案 > 如何在 UWP C# 应用程序中仅访问 JSON 文本的一部分?

问题描述

我正在尝试创建我的第一个 UWP C# 应用程序。单击名为“Button”的按钮时,JSON 将显示在名为“TextBox”的文本框中。

我正在尝试弄清楚如何仅访问 JSON 文本的一部分(data.best_day.text),例如(在 JavaScript 中)data.best_day.text将需要 18 小时 3 分钟。我想为这个 UWP 应用做同样的事情。我已经阅读了一些资源,但它们不起作用或太复杂而无法理解。任何帮助将不胜感激。:)

单击按钮时显示的 JSON 的图片

    // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
    
    namespace WakaTime
    {
        /// <summary>
        /// An empty page that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public MainPage()
            {
                this.InitializeComponent();
            }
    
            private async void Button_Click(object sender, RoutedEventArgs e)
            {
                var client = new HttpClient();
                var text = await client.GetStringAsync("https://wakatime.com/share/@DontBugMie/bef7afe4-102d-47a9-9678-6335510ebedd.json");
              
                TextBox.Text = text;
            }
        }
    }

标签: c#jsonuwp

解决方案


如果你对这条路有信心,试试这个

using System.Text.Json;
...
var jsonDoc = JsonDocument.Parse(text);
var best_day = jsonDoc.RootElement.GetProperty("data").GetProperty("best_day").GetProperty("text").GetString();
TextBox.Text = best_day;

如果您需要多个值,那么最好创建一个模型(DTO)并反序列化它


推荐阅读