简体   繁体   English

如何在C#中从JSON获取密钥

[英]How to fetch keys from JSON in C#

JSON : JSON:

{"From":
{"CHF":{"Rate":0.91640105,"AsAtDate":"2016-04-19T00:00:00"},
"DKK":{"Rate":0.13437824,"AsAtDate":"2016-04-19T00:00:00"},
"EUR":{"Rate":1.0,"AsAtDate":"2016-04-19T00:00:00"},
"GBP":{"Rate":1.25985769,"AsAtDate":"2016-04-19T00:00:00"},
"PLN":{"Rate":0.23213581,"AsAtDate":"2016-04-19T00:00:00"},
"RON":{"Rate":0.22338218,"AsAtDate":"2016-04-19T00:00:00"},
"SEK":{"Rate":0.10868521,"AsAtDate":"2016-04-19T00:00:00"}},
"To":"EUR","RequestedDate":"2016-07-08T00:00:00"}

I want to fetch list of keys under from. 我想从中获取键列表。 Eg. 例如。 list should return keys all values like DKK, EUR,GBP . list应该返回键,如DKK,EUR,GBP的所有值。 C# code is required to deserialize JSON. 反序列化JSON需要C#代码。

I am able to fetch values from JSON but not keys. 我能够从JSON获取值,但不能从键中获取值。

You can create classes to match your json Format, and then read the keys: 您可以创建与您的json格式匹配的类,然后阅读以下键:

public class CurrecyConversion
{
    public Dictionary<string, CurrencyRate> From { set; get; }
    public string To { set; get; }
    public DateTime RequestedDate { set; get; }
}

public class CurrencyRate
{
    public decimal Rate { set; get; }
    public DateTime AsAtDate { set; get; }
}

You need to download this Nuget Package (Right Click Project > Manager Nuget Packages) 您需要下载此Nuget软件包 (右键单击“项目”>“ Manager Nuget软件包”)。

Usage: 用法:

CurrecyConversion result = Newtonsoft.Json.JsonConvert.
                                        DeserializeObject<CurrecyConversion>(jsonText);

List<string> keys = result.From.Keys.ToList();
foreach (var key in keys)
    Console.WriteLine(key);

Result: 结果:

CHF
DKK
EUR
GBP
PLN
RON
SEK

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM