我從MySQL的使用PHP API獲取數據和我通過結果與Json_encode
到Android,但是當我填充結果到Android的ListView我只得到一個第一行多行。如何分析與jsonOject
這reuslt我越來越對網絡AM: {"error":false,"user":{"paid_amount":"500","parking_duration":"59min","parking_name":"asass"}} {"error":false,"user":{"paid_amount":"100","parking_duration":"22min","parking_name":"SDSDASDAS"}}
PHP部分:
...........
$usersArr = $db->getDriverHistory($plate_no);
if ($usersArr != false) {
foreach($usersArr as $key=>$user){
// use is found
$response[$key]["error"] = FALSE;
$response[$key]["user"]["paid_amount"] = $user["paid_amount"];
$response[$key]["user"]["parking_duration"] =
$user["parking_duration"];
$response[$key]["user"]["parking_name"] = $user["parking_name"];
$response = $response[$key] ;
// echo json_encode($response), "<br>";
// echo $response;
$json = json_encode($response);
echo $json,"<br>";
......
的Android代碼:我需要的是讓地方車牌號碼等於一定數目的所有結果,但我只獲取一行而不是所有行。
private void GetParkingInfo(final String plate_no) {
// Tag used to cancel the request
String tag_string_req = "req_Verfication";
progressBarList.setVisibility(View.VISIBLE);
// myList.setVisibility(View.GONE);
StringRequest strReq = new StringRequest(Request.Method.POST,
Urls.URL_driver_parking_information, new
Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "cerfication Response: " + response.toString());
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
// Check for error node in json
if (!error) {
// user successfully exist in database
JSONObject user = jObj.getJSONObject("user");
String paid_amount = user.getString("paid_amount");
String parking_duration =
user.getString("parking_duration");
String parking_name = user.getString("parking_name");
HashMap<String, String> prodHashMap = new
HashMap<String, String>();
prodHashMap.put("paid_amount", paid_amount);
prodHashMap.put("parking_duration", parking_duration);
prodHashMap.put("parking_name", parking_name);
ArrayList<HashMap<String, String>> wordList;
wordList = new ArrayList<HashMap<String, String>>();
wordList.add(prodHashMap);
userList = wordList ;
ShowListData();
progressBarList.setVisibility(View.GONE);
}
else{
// Error in login. Get the error message
// // hiding the progress bar
progressBarList.setVisibility(View.GONE);
myList.setVisibility(View.VISIBLE);
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(), errorMsg,
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Json error: " +
e.getMessage(), Toast.LENGTH_LONG).show();
// // hiding the progress bar
progressBarList.setVisibility(View.GONE);
myList.setVisibility(View.VISIBLE);
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Verfication error Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
"response error", Toast.LENGTH_LONG).show();
// Toast.makeText(getApplicationContext(),
// error.getMessage(), Toast.LENGTH_LONG).show();
// hiding the progress bar
progressBarList.setVisibility(View.GONE);
myList.setVisibility(View.VISIBLE);
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters to verfication url
Map<String, String> params = new HashMap<String, String>();
params.put("plate_no", plate_no);
return params;
}
};
// // Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq,tag_string_req);
}
我正在閱讀你的文章,並且我看到很多不清楚的東西和**你爲什麼要'echo $ json「
「;'** :)。好吧,我猜你的JSON數據是數組'']',對嗎?因爲我只看到兩個具有相同結構的js對象...您需要在Android部分的循環之前解析json。最後,請做出一些努力來設置你的代碼的格式:) – codtex