【问题标题】:Parsing json url解析 json url
【发布时间】:2014-06-17 14:11:26
【问题描述】:

我正在尝试从 json url 创建一个图像视图。我正在使用字符串中的 for 循环获取 url。我无法在 for 循环之外使用该变量。我尝试在 for 循环中构造一个数组列表。这就是我在日志中得到的内容。

正在创建视图...[[], [], [], [], [], [], [], [], [], []]

这是我的代码。

    @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

【问题讨论】:

标签: java android json


【解决方案1】:

如果对如何从 JSON 创建 POJO 有疑问,我建议您试试这个网站: http://www.jsonschema2pojo.org/

它会为您输出一个适用于给定 json 类型的完整 java 类;

在大多数情况下,我建议您使用此配置(来自上面的网站): 源类型:Json 注释样式:无 并检查仅使用原语。

希望对你有帮助!

【讨论】:

    【解决方案2】:

    您好,请按以下方式操作

    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);
        }
    

    【讨论】:

      【解决方案3】:

      我认为您错过了将值放入 M​​AP。

      尝试这样使用

      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);
      
                  }
      

      【讨论】:

      • 正在创建视图...[{flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}, {flag=flag}].. 这就是我得到的..
      猜你喜欢
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多