【问题标题】:How to convert JSON to Array by PHP [duplicate]如何通过 PHP 将 JSON 转换为数组 [重复]
【发布时间】:2021-03-22 13:39:24
【问题描述】:

我收到了以下 JSON 数据。

{
    "app": "000",
    "members":[
        {
            "name":{
                "value": "PIYO"
            },
            "email":{
                "value": "piyo@alk.jp"
            }
        },
        {
            "name":{
                "value": "HOGE"
            },
            "email":{
                "value": "hoge@alk.jp"
            }
        }
    ]
}

我想把它转换成下面的数组。

[["name" => "PIYO", "email" => "piyo@alk.jp"], ["name" => "HOGE", "email" => "hoge@alk.jp"]]

我该如何处理? 请给我一些建议。

【问题讨论】:

    标签: php laravel


    【解决方案1】:
    $phparray = json_decode($json, true);
    

    【讨论】:

    • 如果您解释这如何以及为什么会影响手头的问题,您的答案会更好。简单地转储代码不太可能帮助 OP 和任何没有经验的未来读者。 @Danial 不,不会。第二个参数(true)指定 JSON 应转换为关联数组。
    【解决方案2】:
    $foo = json_decode($json,true);
    $members = $foo['members'];
    

    $members 将是您想要的数组。

    【讨论】:

    • 我有错误 'ErrorException: json_decode() expects parameter 1 to be string, array given in file' 。请给我一个建议。
    • 我“假设”您将 json 字符串分配给 $json。
    • 这仍然会产生一个 stdClass 对象数组,这不是 OP 指定的目标。
    • 不鼓励深夜帮忙。我更喜欢物体;在这种情况下,我想要一个对象数组。
    【解决方案3】:

    你可以使用

    $array = json_decode($json, true);
    

    别忘了 $json 必须是字符串。

    我尝试在 PHP 上测试结果。

    <?php
    $json = '{
        "app": "000",
        "members":[
            {
                "name":{
                    "value": "PIYO"
                },
                "email":{
                    "value": "piyo@alk.jp"
                }
            },
            {
                "name":{
                    "value": "HOGE"
                },
                "email":{
                    "value": "hoge@alk.jp"
                }
            }
        ]
    }';
    
    $array = json_decode($json, true);
    
    print_r($array['members']);
    

    结果:

    Array
    (
        [0] => Array
            (
                [name] => Array
                    (
                        [value] => PIYO
                    )
    
                [email] => Array
                    (
                        [value] => piyo@alk.jp
                    )
    
            )
    
        [1] => Array
            (
                [name] => Array
                    (
                        [value] => HOGE
                    )
    
                [email] => Array
                    (
                        [value] => hoge@alk.jp
                    )
    
            )
    
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2013-06-30
      • 2014-07-11
      • 1970-01-01
      • 2014-06-11
      • 2012-02-08
      相关资源
      最近更新 更多