0

我有一个活动,其中值是通过 JSON 获取的。for循环运行。我正在从 JSON 接收获取的对象中存在的所有值。但是,我想将所有值附加到ArrayList, 即image_urls. 任何人都可以帮助我吗?

public class AndroidJSONParsingActivity extends ListActivity {

    private static String url = "http://www.ttt.com/album_pro/array_to_encode";

    JSONArray folio = null;
    ArrayList<String> urlList = new ArrayList<String>();
    public static ArrayList<String> image_urls = new ArrayList<String>();

    @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);

        JSONParser jParser = new JSONParser();
        try {
            JSONObject json = jParser.getJSONFromUrl(url);
            // Log.v("URL",json.toString());

            JSONObject seo = json.getJSONObject("SEO");
            // Log.v("seo",seo.toString());
            JSONArray folio = seo.getJSONArray("Folio");
            Log("ARRAY-FOLIO0" + folio);

            JSONArray image_urls1 = new JSONArray();
            String s1 = seo.getString("Folio");
            for (int i = 0; i < folio.length(); i++) {
                String m = folio.getString(i);
                Log.v("M" + i, m);
                image_urls.add(folio.getString(i) + ",");
                Log("JSON-ARRAY-->" + image_urls.add(folio.getString(i)));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void Log(String string) {
        Log.v("SEO-TEST", string);

    }
}

以下是我得到的 logcat 响应

03-05 13:58:25.948: V/M0(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_a_grade_motor_school.html_a_poftfolio_2013_01_11.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M1(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arcticterntt_folio_portfolio_abc_tarps.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M2(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_able_scale.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M3(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_accent_aluminum_windows.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M4(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_access_health.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M5(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_acmeda__zipscreen.html_a_poftfolio_2013_01_11.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M6(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_aditya_birla_minerals.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M7(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_advanced_corporate_badges.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M8(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_aerotech_fans.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
03-05 13:58:25.948: V/M9(3241): http://www.tt.com/media/imagepath/portfolio_images/http_arctictern.tt_folio_portfolio_agriculture_victoria_services_.html_a_poftfolio_2013_01_10.png
03-05 13:58:25.948: V/SEO-TEST(3241): JSON-ARRAY-->true
4

3 回答 3

0

您的 log cat 正在打印 true 因为您已经"image_urls.add(folio.getString(i))"输入了您的消息,如果项目添加成功,此行将返回 true.. 请现在检查如下

 ArrayList<String > image_urls1 = new JSONArray(); //Use arrayList here
                String s1 = seo.getString("Folio");
                for (int i = 0; i < folio.length(); i++) {
                    String m = folio.getString(i);
                    Log.v("M" + i, m);
                    image_urls1 .add(folio.getString(i) + ",");//adding here
                    Log("JSON-ARRAY-->" + image_urls1.get(i) ); // printing the current element
                }
于 2013-03-05T08:46:12.037 回答
0

true表示您的添加成功。您必须通过数组创建额外for的循环才能获取附加值。还有这个

for (int i = 0; i < folio.length(); i++) {
    String m = folio.getString(i);
    Log.v("M" + i, m);
    image_urls.add(folio.getString(i) + ",");
    Log("JSON-ARRAY-->" + image_urls.add(folio.getString(i)));
}

StringBuilder由于字符串连接,将在每次迭代中创建三个对象。

于 2013-03-05T08:48:03.067 回答
0
ArrayList<String> values = new ArrayList<String>();
for (int i=0; i<folio.size(); ++i) {
    values.add(folio.getString(i));
}
于 2013-03-05T08:25:53.177 回答