【问题标题】:How do I parse this JSON in Java?如何在 Java 中解析这个 JSON?
【发布时间】:2015-03-27 21:17:35
【问题描述】:

我对此有点陌生,而且它正在我的脑海中!我不断收到此错误:

解析数据时出错 org.json.JSONException:tname 没有值

这是json:

[{"tname":"2"},{"kword":"||ice+skating+rink"}]

这是我的java代码:

String result = response.toString();

            try
            {
                JSONArray jArray = new JSONArray(result);

                for (int i = 0; i < jArray.length(); i++) {
                    JSONObject json_data = jArray.getJSONObject(i);
                    Log.i("log_tag", ", type: " + json_data.getString("tname")+
                            ", keyword: " + json_data.getString("kword"));

                    type += json_data.getString("tname");
                    keyword += json_data.getString("kword");
                }

非常感谢任何帮助。

【问题讨论】:

  • 该问题似乎与标题中的问题无关。您似乎能够很好地解析 JSON,只是没有正确访问结果数组/对象。第二个对象没有属性tname。三种可能的解决方案: a) 确保您的数据具有所有预期的属性。 b) 不要访问属性tname。 c) 在访问之前测试该属性是否存在。
  • 感谢您的提示!

标签: java android arrays json parsing


【解决方案1】:

您的第二个对象没有 tname。在访问对象之前,您应该检查并查看对象是否具有属性

if(json_data.has("tname"))    
    type += json_data.getString("tname");
if(json_data.has("kword"))           
    keyword += json_data.getString("kword");

【讨论】:

  • 感谢您的快速回复,我刚刚尝试过,仍然遇到同样的错误?有什么建议吗?
  • 这一行:Log.i("log_tag", ", type: " + json_data.getString("tname")+ ", keyword: " + json_data.getString("kword"));
  • 我的错,我实现不正确。感谢您的帮助!
  • 哈哈我一直在努力,还要等一分钟! :D
猜你喜欢
  • 2013-09-24
  • 1970-01-01
  • 2015-06-09
  • 2018-05-24
  • 2013-04-29
  • 2017-06-07
  • 2014-04-16
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多