JSONArray从android到Array php

时间:2013-09-12 10:57:40

标签: php android json

我正在通过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。

请帮忙。

2 个答案:

答案 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'];