我正在使用C#
解析JSON此代码可以正常工作:
var json = webClient.DownloadString("API KEY");
Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(json);
Console.WriteLine(DefindexS);
price = (double)o["response"]["prices"]["5021"]["6"]["0"]["current"]["value"];
currency = (string)o["response"]["prices"]["5021"]["6"]["0"]["current"]["currency"];
Console.WriteLine("price" + price);
Console.WriteLine("Currency" + currency);
打印正确 price7.11 Currencymetal
这是捕获。上述两种情况中的“5021”需要由用户设置的变量替换。 JSON数据没问题。只要数字正确,它就会返回一个合适的值。
变量是DefindexS。我尝试通过DefindexS替换“5021”进行解析(我已将值设置为5021)但它给了我一个未处理的异常错误。
然后我尝试格式化并执行此操作:
string realdef = String.Format("\"{0}\"", DefindexS.ToString());
Console.WriteLine(realdef);
var json = webClient.DownloadString("API KEY");
Newtonsoft.Json.Linq.JObject o = Newtonsoft.Json.Linq.JObject.Parse(json);
price = (double)o["response"]["prices"][realdef]["6"]["0"]["current"]["value"];
currency = (string)o["response"]["prices"][realdef]["6"]["0"]["current"]["currency"];
Console.WriteLine("price" + price);
Console.WriteLine("Currency" + currency);
结果:
“5021” 然后崩溃.. realdef打印为“5021”,因此格式化正常。为什么我仍然收到错误?
答案 0 :(得分:1)
您不必在变量周围添加引号。所以不需要这行代码:
string realdef = String.Format("\"{0}\"", DefindexS.ToString());
将其更改为
时应该有效string realdef = DefindexS.ToString();