【发布时间】:2013-01-30 23:23:15
【问题描述】:
我尝试通过 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 数组的任何方法。 如果有人可以解决此问题或提出其他方法,我将不胜感激。
谢谢
【问题讨论】:
-
尝试用
ALLOW_BACKSLASH_ESCAPING_ANY CHARACTER配置你的解析器 -
为什么要将某人的好友列表发送到您自己的服务器?
-
我现在只允许人们使用 facebook 帐户登录。因此,如果他们有任何朋友已经在使用该应用程序,我也会在我的数据库中将他们设置为朋友。这就是我这样做的原因。并解决了问题,谢谢。