【问题标题】:unable to get values from string using its key无法使用其键从字符串中获取值
【发布时间】:2014-08-12 17:36:55
【问题描述】:

无法在 Android 代码中使用 name 的键从 result 字符串对象中获取值

我想从 MySQL 表中获取值并在下拉列表中显示 为此,我编写了以下代码

JSONObject json_data = new JSONObject(result);              
List<String> mynamelist = (List<String>) json_data.getJSONArray("name");
return (List<String>) mynamelist;

resultjson_data 的调试值如下所示

我只想返回姓名 (ashish, john) 所以我喜欢(List&lt;String&gt;) json_data.getJSONArray("name");

如何从result 获取所有值 检查图像。

【问题讨论】:

  • 您能发布一个 JSON 代码示例吗?我怀疑发生了解析错误
  • 如果您复制了该错误,您可能在getJSONArray 调用中打错了字。错误显示 nme 而不是 name
  • nme 实际上是键值name 抱歉临时数据更新问题

标签: java android mysql json


【解决方案1】:

试试这些

JSONObject json_data = new JSONObject(result);
List<String> mynamelist = new List<String>(); JSONArray jsonMainNode = jsonResponse.optJSONArray("arrayName");

for (int i = 0; i < jsonMainNode.length(); i++) { JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); mynamelist.add(jsonChildNode.optString("name")); } return mynamelist;

【讨论】:

  • 我认为 json_data 只有一个元素值。我们需要遍历result 吗?你怎么看?
  • 在这些情况下是 json_data.getJSONArray("name");获取第一个 JSONArray {"name":"nme"} 有关 JSONArray 和 JSONOBJECT 结构的更多信息,请访问此页面 link
【解决方案2】:

您尚未共享JSON,但如果您的JSON 有效,则如下所示:

[
    {
        "name": "nme"
    },
    {
        "name": "done"
    },
    {
        "name": "dinkol"
    }
]

那么解析它的正确方法是将其放入JSONArray 对象中。 循环遍历 JSONObject 并将值附加到您的列表数组中:

JSONArray json_data = new JSONArray(result);      

List<String> mynamelist = new ArrayList<String>();
for(int i = 0; i < json_data.length(); i++){
    mynamelist.add(json_data.getJSONObject(i).getString("name"));
}

【讨论】:

  • 在这一行出现同样的错误JSONArray json_data = new JSONArray(result);
  • 我认为 json_data 只有一个元素值。我们需要遍历`result`?你怎么看?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-08
  • 2012-08-28
  • 2020-10-31
  • 1970-01-01
相关资源
最近更新 更多