【发布时间】:2012-10-29 07:17:10
【问题描述】:
在使用变量时无法从 JSON 对象获取名称/值对,但在对名称进行硬编码时能够读取它。
为了更好地解释:
1) 我的 JSON 对象是这样的 - {..... {“费率”:{“name1”:value1,“name2”:value2 ...等} ...}
2) 我可以在我的 android 应用程序中读取此对象。
3) 现在这个速率对象名称值对,我正在尝试根据用户输入来读取 -
String s1 = '"'+name1+'"'; // here name1 i got from user input, & converted into string
4) 现在,当我尝试从 rates 对象中获取值时,我得到了 null 异常 -
JSONObject rateObject = jObject.getJSONObject("rates"); //able to get
complete object
String rate1 = (String) rateObject.get(s1); // giving NULL exception
5) 但是如果我使用硬编码字符串,它可以工作 -
String rate1 = (String) rateObject.get("name1"); // working
任何指针为什么它在使用变量时不起作用。
谢谢
感谢您的建议,我解决了这个问题。我犯了两个错误 - 1)使用其他人正确指出的引号和 2)将双精度值转换为字符串。纠正两者都解决了我的问题:)
【问题讨论】:
-
显示将 name1 分配给用户输入值的代码。
-
无论
name1的值是什么,s1都是一个字符串,其内容 以双引号字符开头和结尾。在您的 JSON 输入中没有以该名称作为名称的字段 - 如果有,则必须将其编码为..., "\"name1\"": value1, ...。