【问题标题】:PHP json_decode error: Array value found, but an object is requiredPHP json_decode 错误:找到数组值,但需要一个对象
【发布时间】:2016-07-28 10:57:31
【问题描述】:

我正在尝试解码以下 JSON 文件

{
     "email": "mail@gmail.com",
     "password": "12345",
     "languageProficiency": {
            "language": "English",
             "proficiency": 4
   },
     "tags": [
         {
            "name": "singing"
         },
         {
           "name": "dance"
         }
   ]
}

当我这样做时

 $data = json_decode($jsonContent, true);
 echo $data;
 die();

我有以下错误:

找到数组值,但需要一个对象

问题

1) 如何查看来自 JSON 的数据 2) 如何访问 tags 数组中每个对象的属性

我正在针对此架构验证 Json 内容

  {
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
      "email": {
        "type": "string"
      },
      "password": {
        "type": "string"
      },
      "languageProficiency": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string"
          },
          "proficiency": {
            "type": "integer"
          }
        },
        "required": [
          "language",
          "proficiency"
        ]
      },
      "tags": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            }
          },
          "required": [
            "name"
          ]
        }
      }
    },
    "required": [
      "email",
      "password",
      "languageProficiency",
      "tags"
    ]
  }

更新

我尝试通过以下方式查看 json 内容

 print_r($data)

但我仍然遇到同样的错误

【问题讨论】:

  • 据我所知,你不能echo 一个数组。
  • 对于此代码,您将获得“注意:数组到字符串的转换”。所以你的错误来自其他地方。

标签: php arrays json jsonschema


【解决方案1】:

$data = json_decode($jsonContent, true);

上面这行代码会返回Array,不能直接使用echo打印数组。

要打印数组的特定值(例如电子邮件),请这样做:

echo $data["email"];

提示:

print_r()知道这样的数组结构,

echo "<pre>";
print_r($data);

【讨论】:

    【解决方案2】:

    你可以尝试 print_r($data) 来探索价值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2013-03-12
      • 2011-08-24
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多