亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用java/android發送的數據在php中進行JSON迭代

使用java/android發送的數據在php中進行JSON迭代

PHP
慕桂英546537 2023-09-22 16:08:29
我的 PHP 服務器從我的 Android 接收以下 json :{  "class":"SURESHOT",  "subject":"Maths",  "qstn":"[607421_15958169393.JPG, 410816_15958169444.JPG,           655502_15958169495.JPG,   625421_15958179086.JPG,           625421_15958179086.JPG, 461984_15958180457.JPG]",  "ans":"[C, B, A, D, C, C]",  "lickey":"jg2ler3xvbdgsjkru12tutujghgjgl4jkjojuir8uttzcdadasretf",  "user":"1000",  "result":"[fail,fail, pass, fail, fail, fail]",  "qid":"[37, 38, 39, 40, 40, 41]" }現在在 PHP 中迭代數據是不可能的?!皅stn”、“ans”和“結果”是有問題的。我們怎樣才能正確地做到這一點呢?我用于json_encode(($_POST),true);初步數據轉換。這是我運行來獲取 JSON 的代碼:這是我獲取 json 的代碼。   reqPostanswers = new StringRequest(Request.Method.POST, urll,new  Response.Listener<String>() {        @Override        public void onResponse(String response) {            //Log.i("posting info :",response.toString());        }    }, new Response.ErrorListener() {        @Override        public void onErrorResponse(VolleyError error) {            //Log.i("posting error  :",error.toString());        }    }){        @Override        protected Map<String,String> getParams(){            Map<String,String> params = new HashMap<String, String>();            params.put("subject",subject);            params.put("class",qSet[qsetCntr][0]);            params.put("user", thisuser);            params.put("result",resltn.toString());            params.put("qstn",qstnn.toString());            params.put("qid", qiddn.toString());            params.put("ans",answn.toString());            params.put("lickey","jg2ler3xvbdgsjkru12tutujghgjgl4jkjojuir8uttzcdadasretf");            return params;        }    };    answerpostQueue = Volley.newRequestQueue(getApplicationContext());    answerpostQueue.add(reqPostanswers);pram 中設置的數組或變量僅是 Arraylists。
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

Android 代碼實際上并未將 JSON 發送到服務器。它使用舊的鍵值表單字段格式,無法表示復雜的對象。要解決此問題,請將 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。

查看完整回答
反對 回復 2023-09-22
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

首先問題出在你創建的json上。Json 數組應如下所示,


"qstn": ["607421_15958169393.JPG","410816_15958169444.JPG",

      "655502_15958169495.JPG","625421_15958179086.JPG","625421_15958179086.JPG", 

"461984_15958180457.JPG"]

按照上面所示的方式轉換你的 json 數組并在 php 端使用,


$model = json_decode($json,true);

現在您可以訪問該變量的值,如下所示:


 $class = $model["class"];

 //The 0th index of qstn array can be accessed as

 $qsnt1 = $model["qstn"][0];

為了避免將來出現此類錯誤,請使用gson為您創建 json。


查看完整回答
反對 回復 2023-09-22
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

使用ltrim和函數從字符串中rtrim刪除 和[,然后使用explode可以將字符串轉換為數組。]注意:此示例僅在分隔符為,空格 ( ", ")時有效


例如"qstn":


$array = json_decode($json, true);


$resultArray = explode(", ",rtrim(ltrim($array["qstn"],"["),"]"));


var_dump($resultArray);


查看完整回答
反對 回復 2023-09-22
  • 3 回答
  • 0 關注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號