我有下面的代码使用凌空,打开应用程序时我有一个空白页面,但是当我点击我的php链接时它的返回值。
为什么它在开口处显示白色空白?我得到了一个例外,但我无法阅读它你能帮助我吗?
这是错误的一行
D/Volley(4754): [1] 2.onErrorResponse: MainActivity
这是代码
JsonArrayRequest movieReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d("r", response.toString());
hidePDialog();
System.out.print(response);
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Movie movie = new Movie();
movie.setTitle(obj.getString("name"));
movie.setThumbnailUrl(obj.getString("path"));
movie.setRating(obj.getString("description"));
// movie.setRating(((Number) obj.get("description"))
// .doubleValue());
movie.setYear(obj.getString("likes"));
// movie.setYear(obj.getInt("likes"));
// Genre is json array
JSONArray genreArry = obj.getJSONArray("comments");
ArrayList<String> genre = new ArrayList<String>();
for (int j = 0; j < genreArry.length(); j++) {
genre.add((String) genreArry.get(j));
}
movie.setGenre(genre);
// adding movie to movies array
movieList.add(movie);
} catch (JSONException e) {
e.printStackTrace();
}
}
// notifying list adapter about data changes
// so that it renders the list view with updated data
adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.print(error);
VolleyLog.d(TAG, "Error: " + error.getMessage());
hidePDialog();
}
});
这是日志猫
07-30 13:06:47.319: I/PersonaManager(4754): getPersonaService() name persona_policy
07-30 13:06:47.409: E/MoreInfoHPW_ViewGroup(4754): Parent view is not a TextView
07-30 13:06:47.449: D/AbsListView(4754): Get MotionRecognitionManager
07-30 13:06:47.549: D/AbsListView(4754): onVisibilityChanged() is called, visibility : 4
07-30 13:06:47.549: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:47.579: D/AbsListView(4754): onVisibilityChanged() is called, visibility : 0
07-30 13:06:47.579: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:47.664: I/(4754): PLATFORM VERSION : JB-MR-2
07-30 13:06:47.754: D/mali_winsys(4754): new_window_surface returns 0x3000
07-30 13:06:47.769: D/OpenGLRenderer(4754): Enabling debug mode 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: left = 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: top = 0
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: right = 144
07-30 13:06:47.779: D/ProgressBar(4754): updateDrawableBounds: bottom = 144
07-30 13:06:47.779: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:47.809: D/mali_winsys(4754): new_window_surface returns 0x3000
07-30 13:06:47.834: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:47.904: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:47.979: I/System.out(4754): Thread-6768(HTTPLog):isShipBuild true
07-30 13:06:47.979: I/System.out(4754): Thread-6768(HTTPLog):SmartBonding Enabling is false, SHIP_BUILD is true, log to file is false, DBG is false
07-30 13:06:48.049: D/Volley(4754): [1] 2.onErrorResponse: MainActivity
07-30 13:06:48.064: D/AbsListView(4754): unregisterIRListener() is called
07-30 13:06:48.069: E/ViewRootImpl(4754): sendUserActionEvent() mView == null
编辑:
我删除了“结果”这个词后,我能够发现错误:
07-30 13:32:41.384: W/System.err(16258): org.json.JSONException: Value
[{ “路径”: “http://api.androidhive.info/json/movies/1.jpg”, “注释”:” 非常好“,”描述“:”长篇故事“,”喜欢“:”5“,”名字“:”50个阴影 灰色 “},{” 路径 “:” http://api.androidhive.info/json/movies/2jpg “ ”注释“:” 美丽的 “ ”说明“: ”机器人“, ”喜欢“: ”7“, ”名“: ”变形金刚“},{ ”路径“:” http://api.androidhive.info/json/movies/3。 JPG “ ”评论“:” 哇“,”“描述”:“绿巨人和铁 man“,”喜欢“:”8“,”name“:”Avangeers“}]在0的org.json.JSONArray类型 无法转换为JSONObject
但在我的php中我编辑了这个
echo json_encode(array($result));
不应编码吗?
答案 0 :(得分:1)
实际上你的resposne有两个问题,下面给出了解决方案: -
1.您的resposne不适合 json对象。您的响应最后包含?&gt; ,这会引发解析错误。所以刚从api响应中删除它。
2.你的resposne实际上是一个 json对象。因此,不要使用 JsonArrayRequest ,而是使用 JsonObjectRequest 类。
拥有和平并享受!!!