Android将JSON数组发布到服务器

Android将JSON数组发布到服务器,android,json,Android,Json,我在尝试发布JSON数组时遇到问题 对于我的Android代码,我通过以下操作将JSON数组传递到服务器: interests = // JSONArray of JSONObjects final ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair(PARAM_USERNAME, username)); params.add

我在尝试发布JSON数组时遇到问题

对于我的Android代码,我通过以下操作将JSON数组传递到服务器:

interests = // JSONArray of JSONObjects
final ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(PARAM_USERNAME, username));
params.add(new BasicNameValuePair(PARAM_INTERESTS, interests.toString()));

HttpEntity entity =  new UrlEncodedFormEntity(params);
final HttpPost post = new HttpPost(UPDATE_INTERESTS_URI);
post.setEntity(entity);

// POST data to server
它看起来像是
[{\'a\':\'1\'},{\'b\':\'2\'}
而不是
[{'a:'1'},{'b:'2'}]
。第一个不能正确解码,第二个能正常工作

那么为什么它不起作用呢

编辑:
当我在发布之前查看Android时,JSONArray.toString()看起来像
[{“a”:“1”},{“b”:“2”}]

您可以尝试使用:

StringEntity params = new StringEntity("your_Data");         
代替您的身份。

您可以尝试使用:

StringEntity params = new StringEntity("your_Data");         
代替你的身份。

这样做:

JSONObject paramInput = new JSONObject();
paramInput.put(PARAM_USERNAME, username);
paramInput.put(INTERESTS, interests.toString());
StringEntity entity = new StringEntity(paramInput.toString(), HTTP.UTF_8);
这样做:

JSONObject paramInput = new JSONObject();
paramInput.put(PARAM_USERNAME, username);
paramInput.put(INTERESTS, interests.toString());
StringEntity entity = new StringEntity(paramInput.toString(), HTTP.UTF_8);

我不知道android,但PHP的
magic quotes
-功能似乎在添加这些斜杠,如果是这样的话,您可以在服务器端使用:

$interests = $_POST["interests"];
if (get_magic_quotes_gpc()) {
    $interests = stripslashes($interests);
}
echo $interests;

我不知道android,但PHP的
magic quotes
-功能似乎在添加这些斜杠,如果是这样的话,您可以在服务器端使用:

$interests = $_POST["interests"];
if (get_magic_quotes_gpc()) {
    $interests = stripslashes($interests);
}
echo $interests;

但是我必须在服务器端更改任何内容吗?但是我必须在服务器端更改任何内容吗?