Как я могу добавить данные json к метке в C#? (windows формы) - PullRequest
0 голосов
/ 07 августа 2020

, поэтому я хочу получить цену bitcoin из URL-адреса и увидеть ее на ярлыке в моей форме.

URL

Я попытался создать класс для него с кодом

public string price { get; set; }

, но я не знаю, что делать после этого, я много искал в Google, но все они показывают результат в списке и et c

Ответы [ 4 ]

1 голос
/ 07 августа 2020

Чтобы десериализовать, сначала вам нужно создать класс с атрибутами, которые имеет JSON. Эта страница вам в этом очень поможет.

После того, как у вас есть класс, вам нужно десериализовать JSON в этот класс. В C# мне нравится использовать JsonConvert из библиотеки Newtonsoft.Json, вам нужно его импортировать.

Метод, который десериализует его: JsonConvert.DeserializeObject.

Один небольшой пример, скажем, ваш класс называется Bitcoin, тогда вам нужно будет сделать это следующим образом:

var myBitcoin = JsonConvert.DeserializeObject<Bitcoin>(yourJson);

РЕДАКТИРОВАТЬ: Чтобы вытащить json из URL-адреса, вы можете использовать метод Webclient DownloadString.

var myjson = new WebClient().DownloadString("url");

Этот пост также может вам помочь.

0 голосов
/ 07 августа 2020

спасибо всем за ответ, но я нашел решение!

код должен быть таким

string url = "https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT";
        using (WebClient wc = new WebClient())
        {
            var json = wc.DownloadString(url);
            JavaScriptSerializer oJS = new JavaScriptSerializer();
            PriceClass obj = new PriceClass();
            obj = oJS.Deserialize<PriceClass>(json);

            BTCPrice_Label.Text = obj.price;

        }

и класс должен быть таким

using System;


    public class PriceClass
    {
        public string symbol { get; set; }
        public string price { get; set; }
    }
0 голосов
/ 07 августа 2020

Этого можно достичь, просто преобразовав Json с generi c object

var myBitcoin = JsonConvert.DeserializeObject<object>(yourJson);
0 голосов
/ 07 августа 2020

Это должен быть ваш класс.

   public class APIResponse
    {
        public string symbol { get; set; } 
        public string price { get; set; } 
    }

Затем в вашей функции добавьте эти строки.

APIResponse response = new APIResponse();

response = JsonConvert.DeserializeObject<APIResponse>();

myPriceLabel.Text = response.price;

Что мы сделали? Мы создали модель C#, такую ​​же, как модель Json Data, и мы взяли данные JSON и преобразовали их в тип APIResponse, чтобы мы могли получить к ним доступ и использовать их по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...