【发布时间】:2017-06-27 02:09:06
【问题描述】:
我正在尝试发送一个字符串并返回 json 对象数组作为响应,如下所示:
// Creating volley request obj
JsonArrayRequest movieReq = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d(TAG, response.toString());
hidePDialog();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
Movie movie = new Movie();
movie.setTitle(obj.optString("fullname"));
movie.setThumbnailUrl(obj.optString("image"));
movie.setRating(obj.optString("location"));
movie.setYear(obj.getInt("id"));
// 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();
adapter.reloadData();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d(TAG, "Error: " + error.getMessage());
hidePDialog();
}
})
{
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("fullname", "test"); // fullname is variable and test is value.
return params;
} };
在上面的代码中,全名是变量,测试是值,使用该变量我试图在我的 php 变量中发送我的变量数据并像这样执行我的查询:
<?php
header("content-type:application/json");
require_once("dbConnect.php");
$fullname = $_REQUEST["fullname"];
//echo $fullname."11";
$sql = "SELECT id ,image,fullname,location from uploadfinding WHERE fullname like '%$fullname%'";
$res = mysqli_query($conn,$sql);
$result = array();
while($row = mysqli_fetch_array($res)){
array_push($result, array(
"id"=>$row["id"],
"fullname"=>$row["fullname"],
"image"=>$row['image'],
"location"=>$row["location"]));
//echo " over";
}
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($result));
fclose($fp);
echo json_encode($result);
mysqli_close($conn);
?>
但是我的值测试没有转移到 php 变量 $fullname 中。所以问题是如何将值测试转移到 php 变量 $fullname。
【问题讨论】:
-
请检查我的更新答案。
-
您收到什么类型的字符串响应?请分享。
-
像这样:[{"id":"442","fullname":"Pooja(18 yr)","image":"uploadfinding\/uploads\/2017-02-0823: 49:521486619389674.jpg","location":"lkn","Description":null}]
-
它是对象数组,但现在当使用 stringRequest 而不是 JsonArrayRequest 时,它会作为整个字符串返回。
-
您正在接收
JSONArray,因此您只需使用JSONArray解析该字符串。
标签: php android arrays json android-volley