我正在通过android / java的一些值发送到服务器。
首先,我创建一个JSONArray对象:
JSONArray JSONsamples = new JSONArray();
然后我按以下方式填充JSONArray:
for(.....)
{
if(...)
{
JSONsamples.put(storedArraylist.get(i));
}
}
然后我通过帖子发送值:
userParameters.add(new BasicNameValuePair("samples", JSONsamples.toString()));
.
.
Http_Client.executeHttpPost(getApplicationContext(), POST_url, userParameters);
.
然后在服务器上我尝试将这些值存储到php数组中,但它不起作用:
$samplesarray = $_POST["samples"];
$samplesarray = json_decode($samplesarray,true);
在解码之前,如果我回显$ samplesarray,我只获得封装在这些\“value \”中的第一个值,在json_decode之后,当我回显$ samplesarray时,我得到一个参数,但找不到null。
请帮忙。
答案 0 :(得分:1)
应该关闭魔术引号,因为它会在\
值之前添加"
。
这会破坏您案例中的json数据。
请阅读更多有关您不应在此处使用magicquotes的原因: http://php.net/manual/en/security.magicquotes.whynot.php
答案 1 :(得分:0)
解决方案是删除魔术引号,或至少检查它是否打开并从那里开始工作。 @steven让我想起了这个,谢谢。
所以在服务器端,我做了以下检查以确保正确的json并且它可以工作:
$samplesarray = get_magic_quotes_gpc() ? stripslashes($_REQUEST['samples']) : $_REQUEST['samples'];