JSON経由でAndroidからPHPに長い配列を送信しようとしています。私はJavascriptで同じことをしてうまくいきましたが、JAVAでは混乱します。パラメータを送信すると、長い配列リストが変更されます。
リストを作成する部分です。
JSONArray list = new JSONArray();
for (int i = 0; i < users.size(); i++) {
list.put(users.get(i).getId());
}
これは、データを送信する Java のコードです。
public JSONObject sendFacebookFriendList(JSONArray list) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("list", list.toString()));
JSONParser jsonParser = new JSONParser();
JSONObject json = jsonParser.getJSONFromUrl(accountServer, params);
return json;
}
そして、これがPHPでデータを受け取るコードです。
$list = $_POST['list'];
$result = array("success" => 1, "list" => $list);
Javascript で送信すると、$list 変数が直接長い配列になっていましたが、JAVA では同じように送信できませんでした。
リストを変更せずに PHP から JAVA に送り返すと、各配列要素の先頭と末尾に \" があることがわかります
したがって、このリスト:
list= ["517565130","523709375","524503024","524620558","524965930", ...
これになります:
"list":"[\"517565130\",\"523709375\",\"524503024\",\"524620558\", ...
したがって、この配列を PHP で解析することはできません。
long/int 配列を適切な方法で送信する方法が見つかりませんでした。誰かがこれを修正したり、別の方法を提案したりしていただければ幸いです。
ありがとう