Я пытаюсь проанализировать Json в C#. (Я новичок в Json)Parsing JSON in C# return null value
WebRequest webRequest = WebRequest.Create(url);
var httpWebRequest = (HttpWebRequest)webRequest;
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
String responseText = "";
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
}
//
Это выход в responseText:
{
"disclaimer": "Exchange rates provided for informational purposes only and do not constitute financial advice of any kind. Although every attempt is made to ensure quality, no guarantees are made of accuracy, validity, availability, or fitness for any purpose. All usage subject to acceptance of Terms: https://openexchangerates.org/terms/",
"license": "Data sourced from various providers; resale prohibited; no warranties given of any kind. All usage subject to License Agreement: https://openexchangerates.org/license/",
"timestamp": 1454497211,
"base": "EUR",
"rates": {
"INR": 74.42686146,
"USD": 1.0929332
}
}
Чтобы получить базу от Json
var obj = JObject.Parse(responseText);
String bcur = (string)obj["base"];
Console.WriteLine("base :"bcur.ToString());
Output : base :EUR
так же получить тарифы от INR, я написал
var obj = JObject.Parse(responseText);
String rte= (string)obj["INR"];
Console.WriteLine("rate:"rte);
it gives me null.
Может кто-нибудь сказать мне, что не так в моем коде. или лучший способ получить базу и курс валюты.
Из любопытства, почему вы используете '.ToString()', когда вы пишете, чтобы утешить, когда вы уже определили тип переменной, как строка? –
мой плохой .. я сделал исправление .. спасибо для указание. – GameBuilder
Обновленный код в моем ответе, чтобы отразить это тоже. Вам также не хватает символа конкатенации в строках вашей консоли. Между вашей строкой и переменной должна быть '+'. Или, альтернативно, если вы используете .Net 4.6, вы можете использовать материал интерполяции строк, префикс вашей строки с помощью $. Используя один из ваших примеров 'Console.WriteLine (« rate: »rte);' будет выглядеть как 'Console.WriteLine ($" rate: {rte} ");' –