2014-06-17 257 views
0

我想从json url创建一个图像视图。我正在使用字符串中的for循环获取URL。我无法在for循环之外使用该变量。我试图在for循环中构建一个arraylist。这是我在日志中得到的。解析json url

创建视图... [[] [] [] [] [] [] [] [] [] []]

这里是我的代码。

@Override 
    protected JSONObject doInBackground(String... args) { 

     JSONParser jParser = new JSONParser(); 
     // Getting JSON from URL 
     JSONObject json = jParser.getJSONFromUrl(url); 

     // Log.v("url", "Creating view..." + json); 

     try { 

      // Getting JSON Array from URL 
      android = json.getJSONArray(TAG_URL); 

      for (int i = 0; i < android.length(); i++) { 

       map = new ArrayList<HashMap<String, String>>(); 
       JSONObject c = android.getJSONObject(i); 

       String name = c.getString(TAG_URL); 

       arraylist.add(map); 



       // Log.v("url", name); 
      } 
      Log.v("url", "Creating view..." + arraylist); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 


     return null; 

    } 

这里是JSON: http://www.json-generator.com/api/json/get/ciCLARKtKa?indent=4

+0

什么是JSON?发布它 –

+0

http://www.json-generator.com/api/json/get/ciCLARKtKa?indent=4 – diwa

回答

0

我想你错过这些值放到地图。

尝试使用这样

for (int i = 0; i < android.length(); i++) { 
       JSONObject c = android.getJSONObject(i); 
       // Storing each json item in variable 
       String flag = c.getString("flag"); 
       HashMap<String, String> map = new HashMap<String, String>(); 
       map.put("flag", flag); 
       arraylist.add(i, map); 

      } 
+0

创建视图... [{flag = flag},{flag = flag},{flag = flag} ,{flag = flag},{flag = flag},{flag = flag},{flag = flag},{flag = flag},{flag = flag},{flag = flag}] ..这就是我得到的.. – diwa

+0

哎对不起..我在尝试你的之前犯了一个错误..它的工作..谢谢.. – diwa

1

当如何从一个JSON创建一个POJO疑问,我建议你试试这个网站: http://www.jsonschema2pojo.org/

它输出你一个完整的Java适用于给定json类型的类;

在大多数情况下,我建议你使用这个配置(从网站上): 源类型:Json的 注释风格:无 并为您只能使用原语。

希望它有帮助!

1

喜做一些事情如下

JSONObject primaryObject = new JSONObject(//yours json string); 
    JSONArray primaryArray = primaryObject.getJSONArray("worldpopulation"); 
    for (int i = 0; i < primaryArray.length(); i++) { 

     JSONObject another = primaryArray.getJSONObject(i); 
     String country = another.getString("country"); 
     String flag = another.getString("flag"); 
     int rank = another.getInt("rank"); 
     String population = another.getString("population"); 

     HashMap<String, String> map = new HashMap<String, String>(); 
     map.put("flag", flag); 
     arraylist.add(i, map); 
    }