Member 11819205 Ответов: 3

Как добавить данные json к метке в C#? ( Windows Forms )


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

URL-адрес: https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT[^]

это мой код для формы:

<pre>using System;
using System.Data;
using System.Text;
using System.Windows.Forms;
using Newtonsoft.Json;

namespace Manager
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT

            var BPrice = @"{https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT}";

            BTCPrice_Label.Text = BPrice;

        }

    }

}


и это код для класса, который я сделал :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Manager
{
    class PriceClass
    {
        public class Rootobject
        {
            public string symbol { get; set; }
            public string price { get; set; }
        }


    }
}


Что я уже пробовал:

я сделал для него класс с кодом

public string price { get; set; }


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

3 Ответов

Рейтинг:
12

Member 11819205

нашел решение!

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

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


Рейтинг:
1

Sandeep Mewara

Попробовать это:

static void Main(string[] args)   
{  
      string jsonData = @ "{'FirstName': 'Sandeep', 'LastName': 'Mewara'}";  
      var sampleObject = JsonConvert.DeserializeObject<SampleClass>(jsonData);  
      Console.WriteLine(sampleObject.FirstName + " " + sampleObject.LastName));  
      // Do whatever you want with the sampleObject => use it to assign a label as you need.
}  

public class SampleClass  
{  
    public string FirstName { get; set; }  
    public string LastName { get; set; }
}

ОБНОВЛЕНИЕ:
Я пропустил здесь добавление предложения о том, что десериализация-это то, что вам нужно для преобразования JSON в объект. После этого вы можете использовать его в соответствии с вашими потребностями. Пример выше демонстрирует это. Ссылка: Как сериализовать и десериализовать JSON с помощью C# - .NET | Microsoft Docs[^]


Member 11819205

спасибо за ответ, но я не мог понять его ( я новичок )

я добавил полученный код и ошибку : только назначение, вызов ... а в качестве оператора можно использовать новые объектные выражения

я не понимаю, что я делаю не так?!

кстати английский мой второй язык

BillWoodruff

Мой голос за № 1. Это не имеет отношения к вопросу ОП.

Sandeep Mewara

Как же так? Пожалуйста, поделитесь - OP хотел бы знать, как извлечь данные json, чтобы они могли быть показаны в метке.

Пример показывает десериализацию, которая дает эту опцию для использования.

0x01AA

Имейте 5, чтобы компенсировать раскомментированный 1

Sandeep Mewara

:люди, спасибо!

Рейтинг:
0

F-ES Sitecore

Google "c# deserialise json" для статей о том, как конвертировать json в классы c#

Работа со строкой JSON в C#[^]

https://www.codementor.io/@andrewbuchan/how-to-parse-json-into-a-c-object-4ui1o0bx8[^]

как только у вас есть это как объект просто сделайте

lblMyLabel.Text = myJSONObject.price;


Member 11819205

спасибо за ответ, я старался

var BPrice = @"{""Price"":20}";

BTCPrice_Label.Текст = BPrice;

но он показывает {"цена": 20} что мне делать?!

BillWoodruff

+5