- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前正在尝试使用 fixer.io API 在 C# 中创建货币转换。
我在从 Twitter API 解析 JSON 时使用了与下面类似的方法,并且没有任何问题,我不完全确定这里发生了什么。
API 返回的 JSON 示例:
{
"base": "EUR",
"date": "2016-05-05",
"rates": {
"AUD": 1.5266,
"BGN": 1.9558,
"BRL": 4.0282,
"CAD": 1.4665,
"CHF": 1.1018,
"CNY": 7.441,
"CZK": 27.028,
"DKK": 7.4401,
"GBP": 0.7886,
"HKD": 8.8775,
"HRK": 7.515,
"HUF": 312.84,
"IDR": 15260.95,
"ILS": 4.3221,
"INR": 76.0745,
"JPY": 122.51,
"KRW": 1333.95,
"MXN": 20.2155,
"MYR": 4.5819,
"NOK": 9.2985,
"NZD": 1.6577,
"PHP": 54.171,
"PLN": 4.4234,
"RON": 4.5035,
"RUB": 75.0559,
"SEK": 9.2575,
"SGD": 1.5531,
"THB": 40.191,
"TRY": 3.3166,
"USD": 1.1439,
"ZAR": 17.0751
}
}
这是我目前正在使用的代码:
List<string> exchangeRate = new List<string>();
string BSE = "USD";
string URL = "http://api.fixer.io/latest?base=" + BSE;
using (var webClient = new System.Net.WebClient())
{
var json = webClient.DownloadString(URL);
dynamic stuff = JsonConvert.DeserializeObject(json);
foreach (JObject item in stuff)
{
exchangeRate.Add(item["rates"].ToString());
foreach (var rates in exchangeRate)
{
Console.WriteLine(rates);
}
}
}
现在我收到的错误是:
Cannot convert type 'Newtonsoft.Json.Linq.JProperty' to 'Newtonsoft.Json.Linq.JObject'
这发生在“JObject 项目”
最佳答案
在您的代码中,JsonConvert.DeserializeObject()
将 JObject
返回到动态变量 stuff
中。当您使用 foreach
迭代 JObject
时,被枚举的项目始终是 JProperty
实例,而不是 JObject
实例.由于 JProperty
不是 JObject
的子类,您不能将它分配给 JObject
变量,这就是您收到此错误的原因。
如果您只是想将所有货币汇率打印到控制台,您可以这样做:
JObject stuff = JObject.Parse(json);
foreach (JProperty rate in stuff["rates"])
{
Console.WriteLine(rate.Name + ": " + rate.Value);
}
fiddle :https://dotnetfiddle.net/fpS9CM
关于c# - 无法将类型 'Newtonsoft.Json.Linq.JProperty' 转换为 'Newtonsoft.Json.Linq.JObject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058137/
我想向已解析的 Json 对象添加自定义参数。自定义参数由多个值组成,需要一个Json格式的对象数组。 当它被添加到 jsonObj 时,它被视为一个完整的字符串而不是一个数组。 var objs
如果对象包含特定变量,是否可以创建新的 JProperty?例如: string object = "var2"; var json = new JObject( new JProperty(
有一个很大的 JSON 文件(大约一千行)。任务是更新现有的 JProperties,或在结构中的特定位置添加新的 JProperties。新文本的位置基于 JToken.Path 属性。例如,这是
我被困在某件事上: 我使用 JObject.Load 反序列化了一个 JSON 文件: // get the JSON into an object JObject jsonObject = JObj
给定两个 JToken: { "Users": { "Name": "Carl" } } 和 { "Users": [ { "Name": "Carl" }, {"Name": "Peter"} ]
我有以下属性 { "bad": { "Login": "someLogin", "Street": "someStreet", "House": "1", "F
我目前正在使用以下扩展方法来执行此任务,但似乎应该有一些现有的包含方法或扩展来执行此任务(或至少是其中的一个子集)。如果 Json.NET 中没有任何内容,那么推荐的过程是什么,或者我将如何更改下面的
我希望你们能帮助我。我想提取 JSON 文件中的每个 ID,但是我收到以下异常错误: Cannot access child value on Newtonsoft.Json.Linq.JProper
我需要获取 JSON { "question":"q1", "answers": { 1:"ans1", 2:"ans2", 3:"ans3"
我正在尝试从以下流中解析 json 值: {"id": "tag:search.xxxxx.com,2005:xxxxxxxxxxx"} {"body": "acordei (:"} {"verb":
在 JSON.net 中,如何遍历 JObject 键子项的 JProperties? 代码: JObject json = JObject.Parse(jsonstring); var develo
我想使用字符串路径将新的 JProperty 添加到 JSON 对象。我正在检索现有路径,然后在其附近添加一个新值。似乎无论我如何选择 token ,或者无论我调用什么 Add 方法(最相关的是 Ad
我正在尝试以这种格式反序列化 JSON: { "data": [ { "installed": 1, "user_likes": 1,
我正在尝试重新创建这个 json: { "request": { " TestRequest": { "OrderID": {
目前正在尝试使用 fixer.io API 在 C# 中创建货币转换。 我在从 Twitter API 解析 JSON 时使用了与下面类似的方法,并且没有任何问题,我不完全确定这里发生了什么。 API
我正在尝试建立 Mike Jansen 的 JIRA REST Client ,我正在尝试提取 JIRA 版本信息。我是 JSON 的新手,所以我不确定这只是格式问题还是什么。 调试时,我有以下标记:
我有一个包含 Json 数据的 JObject 对象。我需要收集具有 "state": true 的所有 KeyValuePairs。在我读取值之前,我想确保 JObject 至少有一个 KeyVal
所以我试图通过将 json 对象读取为 JObject 来控制反序列化,删除一些字段,然后使用 Json.Net 再次将其反序列化为我的目标对象。 .问题是,每当我尝试删除字段时,都会收到错误消息:
我是一名优秀的程序员,十分优秀!