【问题标题】:Passing ArrayList to PHP using Android Asynchronous Http Client Issue使用 Android 异步 Http 客户端问题将 ArrayList 传递给 PHP
【发布时间】:2013-09-30 12:47:28
【问题描述】:

我试图将 ArrayList 发送到 PHP ($_POST) 并将其用作数组。 我用Android异步Http客户端http://loopj.com/android-async-http/

我的代码

ArrayList<String> array = new ArrayList<String>();
array.add("1");
array.add("2");
array.add("3");
RequestParams params = new RequestParams();
params.put("descr_array", array );
AsyncHttpClient client = new AsyncHttpClient();
client.post(StaticValues.SERVER_PAGE, params, new AsyncHttpResponseHandler() { ... }

在 PHP 中

$descrarray[] = $_POST['descr_array'];

只显示一个项目,作为一个字符串。

$result = print_r($_POST);
print(json_encode($result));

调试代码展示

数组([descr_array] => 1)

只有一个字符串,如何解决?

【问题讨论】:

  • 使用json获取php中的值。
  • 将您的字段命名为 descr_array[] 而不是 desc_array。额外的[] 是一个信号,PHP 将多个相同的输入名称视为一个数组,而不是只使用最后一个值。

标签: java php android arraylist


【解决方案1】:

如果要获取所有值,请写入:

RequestParams params = new RequestParams();
params.put("descr_array_1", array.get(0) );
params.put("descr_array_2", array.get(1) );
params.put("descr_array_2", array.get(2) );

但我更喜欢你使用 Gson 将 Array 转换为 String 并且只使用一对:

Gson gson = new Gson(); 
String out = gson.toJson(array);
params.put("descr_array", out ); 

【讨论】:

    【解决方案2】:

    这对我有用:

    RequestParams params = new RequestParams();
    
    for (String val : array) {
        params.add("descr_array[]", val);
    }
    

    它不需要您添加额外的标头或导入其他库,并且适用于 JSONXML


    这里要注意的重要一点是使用add 而不是putSee the difference between the two.

    【讨论】:

      【解决方案3】:

      这对我有用...

      Map<String, String> aMap = new HashMap<String, String>();
      aMap.put("f_name" ,"");
      aMap.put("l_name" ,"");
      aMap.put("email" ,edtEmail.getText().toString());
      RequestParams params = new RequestParams();
      params.put("user",aMap);
      
      AsyncHttpClient client = new AsyncHttpClient();
      client.post(url, params, n.....
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-31
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-15
        相关资源
        最近更新 更多