我正在使用AsyncTask
构建Web应用程序。使用for
循环,因为我CustomListAdapter
有一个ListView
。 onPostExecute()
包含以下代码。
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
另一个Activity
。List 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();
很难做到。
我该怎么做。
答案 0 :(得分:0)
if(job.getString("better_featured_image") == null)
listImage.add(i, "null");
我想知道为什么你在那里使用i
。