【问题标题】:Android - Java how to loop muti-arrayAndroid - Java如何循环多数组
【发布时间】:2017-06-10 18:33:54
【问题描述】:

安卓开始

String JsonFeeds = object.getString("feeds");
JSONArray feeds = new JSONArray(JsonFeeds);
int feed_id;
String feed_radio, feed_title, feed_api, feed_frequency, feed_type, feed_date;


    for (int i=0; i < feeds.length();  i++){
       String feed_data = feeds.getString(i);
       JSONArray array_feed = new JSONArray(feed_data);
       for (int j=0; j < array_feed.length();  j++) {
          JSONObject row = array_feed.getJSONObject(j);
          feed_title = row.getString("feed_title");
          tv.setText(feed_title);
       }
    }

我只是 android 的初学者,正在尝试弄清楚如何执行跟随循环

如果是 PHP 的预期循环

foreach($array[feeds] as $feed_key => $array_feed_data){
    echo "<div>";
        echo "<span>" . $array[feeds][$feed_key][val1] . "<span>";
        echo "<span>" . $array[feeds][$feed_key][val2] . "<span>";
        echo "<span>" . $array[feeds][$feed_key][val3] . "<span>";
        echo "<span> <a href='$downloadlink'> Download </a><span>";
    echo "</div>";  
}

我在使用 android 时遇到的问题,我无法访问 feeds[array_feed_id][my_value_to_show]

编辑

 String JsonFeeds = object.getString("feeds");
 JSONArray feeds = new JSONArray(JsonFeeds);

JSONObject feeds = object.getJSONArray("feeds");

                   for (String key : feeds.getKeys()) {
                       JSONObject row = feeds.getJSONObject(key);
                       feed_title = row.getString("feed_title");
                       tv.setText(feed_title);
                   }

【问题讨论】:

  • 我们可以看看您正在解析的 JSON 示例吗?
  • mobiledatabook.com/smsradio/voice/v1/radio/… remove ?feeds_to_array=ok 只查看 json 数据,否则它会同时显示 php_array 和 json....我希望是你要问的
  • 尝试从 URL 的末尾删除 ?feeds_to_array=ok。这会将提要显示为 PHP 数组而不是 JSON,这可能是您的 PHP 代码运行良好的原因。
  • 我以为你需要知道 json 的外观?因为在 android 中它已被转换为适合环境
  • 啊,好的,请仔细检查您是否不小心使用了错误的数据格式。

标签: java php android loops


【解决方案1】:

feed 本身是一个 JSONObject,而不是一个 JSONArray,因为它的元素被命名。试试这个:

JSONObject feeds = objects.getJSONObject("feeds");

Iterator<String> keys = feeds.keys();
while (keys.hasNext()) {
    JSONObject row = feeds.getJSONObject(keys.next());
    feed_title = row.getString("feed_title");
    tv.setText(feed_title);
}

【讨论】:

  • String JsonFeeds = object.getString("feeds"); JSONArray feeds = new JSONArray(JsonFeeds); //你的代码在下面;我如何编辑 cos JSONObject feeds = object.getJSONArray("feeds"); 给出错误 JSONObject feeds = object.getJSONArray("feeds"); for (String key : feeds.getKeys()) { JSONObject row = feeds.getJSONObject(key); feed_title = row.getString("feed_title"); tv.setText(feed_title); }
  • 您可以通过点击类别标签下方的“编辑”按钮来编辑您的原始帖子。最好这样做,因为代码在 cmets 中显示效果不佳。
  • 您遇到什么错误?查看the sample feed you providedfeeds 是 JSONObject,而不是 String。
  • 如果我评论 JSONArray feeds = new JSONArray(JsonFeeds);你的 JSONObject feeds = object.getJSONArray("feeds");其不兼容的类型。必需:org.json.JSONObject 找到:org.json.JSONArray 和 getKeys() 也是红色的
  • 啊,是的,对不起,我的错字,更正了我的答案。您也不再需要 JSONArray feeds = new JSONArray(JsonFeeds); 行了。
猜你喜欢
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 2013-08-15
  • 1970-01-01
相关资源
最近更新 更多