Android将JSON数组发布到服务器
我在尝试发布JSON数组时遇到问题 对于我的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
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;
但是我必须在服务器端更改任何内容吗?但是我必须在服务器端更改任何内容吗?