java - 如何解决,JSONException : No value for "1"

标签 java php android mysql json

在网站上浏览了一段时间,但一无所获。

我正在创建一个 Android 应用程序,它通过 PHP 从 mySQL DB 获取值列表,并返回以 JSON 对象编码的结果:

{"error":false,"values":{"1":{"name":"This is a string"}, "2":{...}}}

我正在像这样检索 Java 中的 JSON 对象:

JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");

if (!error) {
    JSONObject values = jObj.getJSONObject("values");
    Iterator<?> keys = values.keys();

    while(keys.hasNext()) {
        String key = (String)keys.next();
        JSONObject value = jObj.getJSONObject(key);
        ...
    }

在省略号之前的位置,我得到了异常:

org.json.JSONException: No value for "1"

我是在做一些完全愚蠢的事情,还是什么,在我看来一切都很好。我尝试了多种不同的方法,但仍然遇到同样的问题。 我最终想做的是获取名称 obj 并将其添加到字符串列表中。但我似乎无法超越这一点。

任何帮助或插入正确的方向将不胜感激。

最佳答案

JSONObject value = jObj.getJSONObject(key);

替换为

JSONObject value = values.getJSONObject(key);

关于java - 如何解决,JSONException : No value for "1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38635428/

相关文章:

java - Android AsyncTask使用打开FileOutputStream

android - 为什么 onCreate Bundle 和 onSaveInstanceState Bundle 在 Fragment 中不同?

java - 无法将 TextView 设置为 VISIBLE

java - 是否有可能在jsp中保存或缓存表单数据

java - 使用 Spring Data JPA 从 MS SQL 中选择前 1 条记录

php - 将日期字符串转换为 ISO php 格式

php - 使用 PHP 和 mysqli 从数据库中排除以前的值

android - BottomSheetDialog - 删除下面的透明空间

java - 地道的 Scala 列表理解 - 第一项匹配

php - 如果字段为空或 !empty 运行查询并且不显示空字段的错误