【问题标题】:Is this json format?这是json格式吗?
【发布时间】:2015-09-02 21:40:25
【问题描述】:

我得到这个输出:

{"params":{"2":true,"3":true}}

我已将其打印为(在 PHP 端):

$data = file_get_contents("php://input");
        print($data);

我想在 PHP 端使用循环来使用 2 和 3 值。但正如我所尝试的,它不是 json 格式(它的怀疑)。那么如何使用循环来使用这些值呢?

【问题讨论】:

  • 看起来像有效的 json,显示失败的代码,例如循环
  • 您尝试使用的代码是什么?
  • foreach($data as $d) { echo $d->params; }
  • json在php中只是一个字符串,要将其作为数据结构使用,必须将其转换为数组或对象json_decode()

标签: php json


【解决方案1】:
$data='{"params":{"2":true,"3":true}}';
$decoded=json_decode($data,1);
        foreach ($decoded as $key => $param)
        {
            foreach ($param as $user_id => $value)
            {
                    echo $user_id;
            }
        }

它给了我输出:

 2 3

(如我所料)。

【讨论】:

    【解决方案2】:
    <?php
    
    $json='{"params":{"2":true,"3":true}}';
    
    $params=json_decode($json, true)['params'];
    
    foreach ($params as $k =>$v){
        echo $k . ' is ' .  var_export($v, true) . PHP_EOL;
    }
    

    输出:

    2 is true
    3 is true
    

    【讨论】:

      【解决方案3】:
      $j='{"params":{"2":true,"3":true}}';
      
      $decoded=json_decode($j,1);
      
      print "<pre>\n";
      print_r($decoded);
      print "</pre>\n";
      

      json_decode()的第二个参数是

      'assoc' - 当为 TRUE 时,返回的对象 s 将被转换为 关联数组

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-11
        • 2015-08-29
        • 2021-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多