php json_decode没有返回任何结果

时间:2017-09-25 20:09:00

标签: php json forms

我想弄清楚为什么我在使用json_decode时没有返回任何数据。我正在尝试获取有效json文件中的值(是的,我测试过它)。当我尝试使用时:

foreach($json['designs']['filters'] as $filters) {
    echo $filters['filterTypeName']; 
}

我正在返回值...这很好,但我试图进入json文件的下一级别,只为“值”下的每个数组提取值。这是来自file_get_contents('url')的json文件结果:

{"designs":  {
    "filters"   :
        [
            {
                "filterTypeName":"Year",
                "filterProperty":"year",
                "values":
                    [
                        {
                            "name":"2018",
                            "value":"2018",
                            "sortvalue":"1"
                        },
                        {
                            "name":"2017",
                            "value":"2017",
                            "sortvalue":"2"
                        }, (etc.)

                    ]
             },
             {
                "filterTypeName":"Division",
                "filterProperty":"division",
                "values":
                    [
                        {
                            "name":"Resort-Apparel",
                            "value":"Resort-Apparel",
                            "sortvalue":"1"
                        },
                        {
                            "name":"College-Apparel",
                            "value":"College-Apparel",
                            "sortvalue":"2"
                        }, (etc.)

                    ]
             }, (etc.)

基本上,我在表单上有一个选择选项,检查上面列出的值以返回符合条件的设计。

我如何专门搜索一个选择组中的所有年份,然后搜索另一个选择组中的所有部门等等?

感谢您的所有帮助!!

3 个答案:

答案 0 :(得分:0)

尝试使用$json->designs-> filters来访问过滤器而不是$json['designs']['filters']

答案 1 :(得分:0)

正如其他人所说,json_decode返回一个对象,除非将true指定为第二个参数,因此你的选项是:

  1. 使用$json->designs->filters
  2. 或使用json_decode($json, true)

答案 2 :(得分:0)

我使用foreach($json['designs']['filters'][0]['values'] as $name)我忘了指定我试图访问的数组的编号。