C#读取Json并读取数据

C# Read Json And Read Data

我想制作按用户 ID 显示您的 Roblox 名称的 C# 应用程序

这是我的个人资料 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

类似这样。

你能Guys/Girls请帮助我吗?

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

从那里您必须 'deserialize' 将响应转换为可在代码中使用的对象。我用的是 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; }
}

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

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; }
    }
}