c# - 在c#中解析JSON返回空值

标签 c# json visual-studio-2015 json.net c#-3.0

我正在尝试用 C# 解析 Json 。 (我是 Json 初学者)

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.

谁能告诉我我的代码有什么问题吗?或者更好的方式来获取货币的基础和汇率。

最佳答案

INR 不在基础对象中,因此您要在不存在的位置查找 INR 属性。为了访问 中的属性,您必须分两步进行。修改上面的代码,它看起来像这样:

var obj = JObject.Parse(responseText);
JObject rates = (JObject)obj["rates"];
string rte = (string)rates["INR"];
Console.WriteLine("rate:" + rte);

关于c# - 在c#中解析JSON返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35178531/

相关文章:

c# - 如何使用 VSTO 2010 for Excel 按名称显示工作表

Java:将字符串转换为 JSONArray,或以正确的方式拆分字符串

visual-studio-2015 - Entity Framework Core - 无法添加第一次迁移

visual-studio-2015 - 无法在Windows 8.1上安装Visual Studio 2014 CTP

c# - 转换 DateTime 导致 IndexOutOfRangeException

c# - 如何在 ASP.Net 中使用子控件集合创建控件

c# - 如何从串口读取数据并写入串口?

java - 新行,双引号在 json 数据中给出错误

javascript - JSON.parse() 永远不会完成

c++ - PHP7 - 从源 x86/x64 Windows 编译