我正在使用Flickr API让我的应用程序根据用户搜索显示图像。我一直收到此错误:public boolean passwordCheck(String password1, String password2) {
boolean valid = false;
do {
if(password1.length()>20) {
errorLabel.setText("* Password is too long");
System.out.println("Password is too long");
valid = false;
break;
} else if (password1.length()<4) {
errorLabel.setText("* Password is too short");
System.out.println("Password is too short");
valid = false;
break;
} else if (password1 != password2) {
System.out.println(password1 + "==" + password2);
errorLabel.setText("* Passwords do not match!");
System.out.println("Password do not match!");
valid = false;
break;
} else if (password1 == password2){
valid = true;
}
} while (!valid);
System.out.println("outside the loop" + valid);
return valid;
}
获取照片的电话:
JSONException: No value for photo
json格式是这样的:
public ArrayList<Category> processResults(Response response) {
ArrayList<Category> categories = new ArrayList<>();
try {
String jsonData = response.body().string();
if (response.isSuccessful()) {
JSONObject flickrJSON = new JSONObject(jsonData);
//json data
JSONArray photoJSON = flickrJSON.getJSONArray("photo");
}
}
}
答案 0 :(得分:0)
由于代码的new JSONObject()
部分工作正常,因此可以安全地假设您获得的JSON对象是有效的,在这种情况下,您的实际JSON对象必须如下所示:
{
photos: { page: 1,
pages: 2165,
perpage: 100,
total: "216413",
photo: [ { id: "37095719122",
.....
}
}
变量flickerJSON
将包含整个对象,其唯一的字段为photos
,而您尝试访问的photo
字段是photos
的内部字段对象。
因此,您可以像这样访问photo
字段:
JSONArray photoJSON = flickrJSON.getJSONObject("photos").getJSONArray("photo");