C# 读取 Json 并读取数据 [关闭]

Posted

技术标签:

【中文标题】C# 读取 Json 并读取数据 [关闭]【英文标题】:C# Read Json And Read Data [closed] 【发布时间】:2020-08-20 18:36:23 【问题描述】:

我想制作一个 C# 应用程序,通过用户 ID 显示你的 Roblox 名称

这是我个人资料的 Json,但我不知道如何获取 Json 数据:https://api.roblox.com/users/157816362

例如:

json = new System.Net.WebClient() Proxy = null .DownloadString("https://api.roblox.com/users/157816362");
label1.text = json.Username

类似的东西。

你们能帮帮我吗?

【问题讨论】:

【参考方案1】:

这是一个示例程序,您必须创建一个 Web 请求,传递您想要的 url,然后从中获取响应。

您必须从那里将响应“反序列化”为可在代码中使用的对象。我使用了 System.Json 之一,但您可以选择其他的,例如 newtonsoft。

internal class Program

    public static void Main(string[] args)
    
        var webRequest = WebRequest.Create("https://api.roblox.com/users/157816362");
        var response = webRequest.GetResponse();
        var responseStream = response.GetResponseStream();
        if (responseStream != null)
        
            var reader = new StreamReader(responseStream);
            string body = reader.ReadToEnd();
            var robloxProfile = JsonSerializer.Deserialize<RobloxResponse>(body);
        
    


public class RobloxResponse

    public int Id  get; set; 
    public string Username  get; set; 
    public string AvatarUri  get; set; 
    public bool AvatarFinal  get; set; 
    public bool IsOnline  get; set; 

【讨论】:

那么如何将 label1 的文本更改为用户名? 使用 Corys 代码将是 label1.Text = robloxProfile.Username; 我收到这样的错误:i.ibb.co/9cV3P18/igoterror.png 我该如何解决? 您需要在顶部提供这些参考:使用 System.IO;使用 System.Net;使用 System.Text.Json; 我无法从 Button1_Click 访问 robloxProfile.Username 我该如何解决这个问题?【参考方案2】:

你几乎已经有了答案。您应该创建一个映射到 json 的类,下载 Newtonsoft.Json nuget 并将您从 WebClient.DownloadString 获得的字符串数据转换为通过 JsonConvert 类的类。像这样:

class Program 
    static void Main(string[] args) 
        using (var client = new WebClient()) 
            var data = client.DownloadString("https://api.roblox.com/users/157816362");
            var jsonData = JsonConvert.DeserializeObject<JsonData>(data);
            Console.WriteLine($"jsonData.Username");
        

        Console.ReadLine();
    

    public class JsonData 
        public int Id  get; set; 
        public string Username  get; set; 
    

【讨论】:

以上是关于C# 读取 Json 并读取数据 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

c# 读取json的问题,JObject不能强转成JArray

是否有在 Windows Mobile 上用 C# 读取 JSON 的库? [关闭]

C#读取json数据介绍

使用 C# 从外部 api 读取 json 数据

如何从 json 数据中读取特定字段? [关闭]

在 SSIS 中使用 C# 从 JSON API 读取