在我的数组中找到的URL中使用JSON数据

时间:2011-07-28 04:32:11

标签: java android arrays json

我正在尝试使用每个JSON元素的第二个值,并在一个网址网址中使用它。我想要结束的是一系列网址,其中包含我的json数据中的图像名称。

JSON数据:

[["1","Dragon Neck Tattoo","thm_polaroid.jpg","polaroid.jpg"],["2","Neck Tattoo","thm_default.jpg","default.jpg"],["3","Sweet Tattoo","thm_enhanced-buzz-9667-1270841394-4.jpg","enhanced-buzz-9667-1270841394-4.jpg"]]

MainActivity:

 Bundle bundle = getIntent().getExtras();
 String jsonData = bundle.getString("jsonData");


                try {

//THIS IS WHERE THE VALUES WILL GET ASSIGNED
                    JSONArray jsonArray = new JSONArray(jsonData);


        private String[] mStrings=
            {
                 for(int i=0;i<jsonArray.length();i++)
                    {
                       "http://www.mywebsite.com/images/" + jsonArray(i)(2),
                     }
             }


    list=(ListView)findViewById(R.id.list);
        adapter=new LazyAdapter(this, mStrings);
        list.setAdapter(adapter);



                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

1 个答案:

答案 0 :(得分:1)

正如我在a previous answer中提到的,JSONArray只是object,而不是numerically-indexable array。看起来你也遇到了基本的Java语法问题。

如果实际想要使用String[],而不是List<String>

private String[] mStrings = new String[jsonArray.length()];

for (int i=0; i<jsonArray.length(); i++)
{
    String url = jsonArray.getJSONArray(i).getString(2);
    mStrings[i] = "http://www.mywebsite.com/images/" + url;
}

如果您使用的LazyAdapter可以使用List,则可以更轻松地使用:

private List<String> mStrings = new ArrayList<String>();

for (int i=0; i<jsonArray.length(); i++)
{
    String url = jsonArray.getJSONArray(i).getString(2);
    mStrings.add("http://www.mywebsite.com/images/" + url);
}