为什么我要加倍'[[? 它应该是一个支架吗? '['
[[{“name”:“50的阴影 灰色 “ ”路径“: ”http://api.androidhive.info/json/movies/1.jpg“, ”描述“:” 长 故事“,”喜欢“:”5“,”评论“:”非常 好 “},{” 名 “:” 变形金刚”, “路径”: “http://api.androidhive.info/json/movies/2jpg”, “说明”: “机器人”, “喜欢”: “7” ,“评论”:” 美丽的 “},{” 名 “:” Avangeers “ ”路径“: ”http://api.androidhive.info/json/movies/3.jpg“, ”说明“:” 绿巨人 和铁人“,”喜欢“:”8“,”评论“:”哇“}]]
这是我的php
$sql = "select name , path , description , likes , comments from image ";
$res = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result,
array('name'=>$row[0],
'path'=>$row[1],
'description'=>$row[2],
'likes'=>$row[3],
'comments'=>$row[4]
));
}
echo json_encode(array($result));
mysqli_close($con);
在这样的代码中获取它是否正确?
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();
}
});
答案 0 :(得分:3)
$result
是一个数组。
你在该数组中推送关联数组(成为对象),所以现在你有[{...},{...}]
然后你做:
echo json_encode(array($result));
所以你得到一个包含数组的数组,导致上面的结果带有额外的'['around:[[{...},{...}]]