3 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個贊
Android 代碼實(shí)際上并未將 JSON 發(fā)送到服務(wù)器。它使用舊的鍵值表單字段格式,無法表示復(fù)雜的對象。要解決此問題,請將 Android 代碼更改為使用,JsonObjectRequest而不是StringRequest,并將請求作為 傳遞JSONObject:
JSONObject params = new JSONObject();
params.put("subject",subject);
params.put("class",qSet[qsetCntr][0]);
params.put("user", thisuser);
params.put("result", new JSONArray(resltn));
params.put("qstn", new JSONArray(qstnn));
params.put("qid", new JSONArray(qiddn));
params.put("ans", new JSONArray(answn));
params.put("lickey","jg2ler3xvbdgsjkru12tutujghgjgl4jkjojuir8uttzcdadasretf");
reqPostanswers = new JsonObjectRequest(Request.Method.POST, urll, params,
? ? new? Response.Listener<String>() { ... },
? ? new Response.ErrorListener() { ... }
});
完成此更改后,您很可能還必須更改 PHP 代碼,以便它從請求正文中讀取 JSON。

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個贊
首先問題出在你創(chuàng)建的json上。Json 數(shù)組應(yīng)如下所示,
"qstn": ["607421_15958169393.JPG","410816_15958169444.JPG",
"655502_15958169495.JPG","625421_15958179086.JPG","625421_15958179086.JPG",
"461984_15958180457.JPG"]
按照上面所示的方式轉(zhuǎn)換你的 json 數(shù)組并在 php 端使用,
$model = json_decode($json,true);
現(xiàn)在您可以訪問該變量的值,如下所示:
$class = $model["class"];
//The 0th index of qstn array can be accessed as
$qsnt1 = $model["qstn"][0];
為了避免將來出現(xiàn)此類錯誤,請使用gson為您創(chuàng)建 json。

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個贊
使用ltrim和函數(shù)從字符串中rtrim刪除 和[,然后使用explode可以將字符串轉(zhuǎn)換為數(shù)組。]注意:此示例僅在分隔符為,空格 ( ", ")時有效
例如"qstn":
$array = json_decode($json, true);
$resultArray = explode(", ",rtrim(ltrim($array["qstn"],"["),"]"));
var_dump($resultArray);
- 3 回答
- 0 關(guān)注
- 166 瀏覽
添加回答
舉報(bào)