【问题标题】:How to convert JSON to array in PHP?如何在 PHP 中将 JSON 转换为数组?
【发布时间】:2015-02-01 21:18:02
【问题描述】:

在接收以下 JSON 时

{ "phone": [ "123", "456", "789"]}

在 PHP 中我尝试得到这个(显示为 print_r):

Array ( [0] => 123 [1] => 456 [2] => 789 )

因此我尝试使用以下代码,但没有成功:

if (isset($_GET["phone"])) {
    //Decode Json
    $values = json_decode($_GET['phone'], true);
    print_r($values);
    foreach ($values as $key => $value) {
    echo "<p>$key | $value</p>";
    }...

如何在请求的数组中接收和转换此 JSON?

在 php 代码中定义 JSON 时,它工作正常。然后我得到一个关联数组。在我看来,问题可能出在 java (android) 代码中,因为 $_GET['phone'] 应该在 php 中工作:

 ArrayList<String> paramsstring = new ArrayList<String>();
 ArrayList<BasicNameValuePair> paramstodb = new ArrayList<BasicNameValuePair>();
 contacts = aa.toArray(new String[aa.size()]);

    for (int i = 0; i < contacts.length; i++) {
        paramsstring.add(contacts[i]);}

    paramstodb.add(new BasicNameValuePair("phone", paramsstring.toString()));

    // getting JSON string from URL
    JSONObject json = jParser.makeHttpRequest(url_all_user, "GET", paramstodb);

也许 php 会收到另一种格式的 JSON? GET 请求应该不是问题,因为 JSON 不是很长。

【问题讨论】:

  • 这应该可以正常工作!请向我们展示您的完整代码
  • $array = json_decode($_GET['phone'], true); $values=$array['phone'];
  • 我编辑了发送 JSON 的 android 代码。

标签: php android arrays json


【解决方案1】:

var_dumping 解码的 JSON 对象会导致:

对象版本

object(stdClass)#1 (1) {
  ["phone"]=>
  array(3) {
    [0]=>
    string(3) "123"
    [1]=>
    string(3) "456"
    [2]=>
    string(3) "789"
  }
}

关联数组版本:

array(1) {
  ["phone"]=>
  array(3) {
    [0]=>
    string(3) "123"
    [1]=>
    string(3) "456"
    [2]=>
    string(3) "789"
  }
}

这正是它应该返回的。 见这里:http://ideone.com/CDBvGQ

因为它是一个嵌套数组,所以 foreach 不会像你预期的那样工作,试试这个:

foreach ($values['phone'] as $key => $value) {

在这里看到它完全工作:http://ideone.com/QG3uH6

【讨论】:

    【解决方案2】:

    假设您在$_GET["phone"] 中获得了 json 值

    if (isset($_GET["phone"])) {
        //Decode Json
        $array = json_decode($_GET['phone'], true); 
        $values=$array['phone'];
    
        print_r($values);
        foreach ($values as $key => $value) {
            echo "<p>$key | $value</p>";
        }
     }
    

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2013-12-13
      • 2017-09-09
      • 2016-09-09
      • 1970-01-01
      • 2015-07-02
      • 2016-07-07
      • 2013-06-18
      • 1970-01-01
      相关资源
      最近更新 更多