JSONArray from android to Array php


JSONArray from android to Array php

我正在将一些值从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,我只得到封装在这些"值"中的第一个值,在json_decode之后,当我回显$samplesarray时,我得到一个预期的参数,但发现 null 错误。

请帮忙。

魔术引号应该关闭,因为它会在"值之前添加一个'。这会破坏您案例中的 json 数据。

请在此处阅读更多关于为什么不应该使用魔术报价的信息:http://php.net/manual/en/security.magicquotes.whynot.php

解决方案是删除魔术引号,或者至少检查它是否打开并从那里开始工作。 @steven提醒了我这一点,谢谢。

因此,在服务器端,我进行以下检查以确保正确的json并且它可以工作:

$samplesarray = get_magic_quotes_gpc() ? stripslashes($_REQUEST['samples']) : $_REQUEST['samples'];