for循环问题,而数据为空

时间:2018-05-26 14:46:43

标签: java android for-loop

我正在使用AsyncTask构建Web应用程序。使用for循环,因为我CustomListAdapter有一个ListViewonPostExecute()包含以下代码。

JSONArray jarr = new JSONArray(json);
 if(jarr.length() > 0){
  List<String> listImage  = new ArrayList<>();

  for(int i = 0; i<jarr.length(); i++){
    JSONObject job = new JSONArray(json).getJSONObject(i);
    if(job.getString("better_featured_image") != null){
    listImage.add(i, job.getJSONObject("better_featured_image").getJSONObject("media_details").getJSONObject("sizes").getJSONObject("medium").getString("source_url"));         
    String[] itr = listImage.toArray(new String[i]);
    image = itr.clone();
    }
  }     
}

json响应如下所示。第一行扩展为清晰的示例,然后折叠以便轻松理解。

[{"id":1, "title":{"rendered":" The Title"}, "better_featured_image":{" media_detais":{"sizes":{"medium":{"source_url":"http://thumbnail_url.png"}}}},

 {"id":2.....,"source_url":"url.png"},
 {"id":3.....,"source_url":"url.png"},

 {"id":4.....,"better_featured_image":null},

 {"id":5.....,"source_url":"url.png"}]

您可以看到WP Rest Api,我也在使用Better Featured Image - WP Rest Api

请求的网址如下http://..../wp-api/posts?per_page=10&fields=id,title,excerpt,better_featured_image

一切都很好,我可以在ImageView上显示图像。在上述json响应后,ID为1,2,3,5的网址可以正常使用。

但是,请注意id:4的回复。它在better_featured_image上包含null,因为这篇文章没有任何特色图片。

上面提到的我的java代码效果很好但是因为这个空值而停止了。你可以看到我尝试了一下。但是,它失败了,因为我已将网址传递给String[] image数组,该数组将用于Bitmap加载AsyncTask另一个ActivityList listImage

所以,我的问题和代码很大。

for包含注入null循环的网址。但是,null有价值的一个导致了问题。

我希望所有网址都可以,并且包含空值的网址会将1 => 1st url 2 => 2nd url 3 => 3rd url 4 => null 5 => 5th url 字符串添加到列表中。

我接受了什么

1 => 1st url
2 => 2nd url
3 => 3rd url
4 => 5th url

我得到了什么

loop

我没有想到。因为,var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].solution); }); connection.end(); 很难做到。

我该怎么做。

1 个答案:

答案 0 :(得分:0)

if(job.getString("better_featured_image") == null)
     listImage.add(i, "null");

我想知道为什么你在那里使用i