非法字符串偏移。无法从 JSON 多级文件中获取子级



这是我的JSON文件:

{
 "user": {
  "id": "2.8.388387",
  "category": "posts",
  "json_metadata": {
     "tags": [
        "new",
     ],
     "image": [
        "https://s32.postimg.org/4twcn4yrp/13918652_1345543288792650_1255274463_o.gif"
     ]
  }
 }
}

和PHP:

$json = json_decode($content, true);

foreach($json as $i){
  $id = $i['id'];
  $category = $i['category'];
  $image = $i['json_metadata']['image'];
  echo $id;
  echo $category;
  echo $image;
}

Echo$id和$category工作得很好。但是,$image错误:警告:非法的字符串偏移量"image"

你知道我想念什么吗?

json_metadata是循环中的数组,所以您只需要像在数组中那样从数组中获取数据。很简单。。。这将在每个循环之前工作。您还可以在循环中打印jsonmetadata数组。

$content = '{
    "user": {
        "id": "example glossary",
        "category": "example glossary",
        "json_metadata": {
            "tags": ["new"],
            "image": [
                "https://s32.postimg.org/4twcn4yrp/13918652_1345543288792650_1255274463_o.gif"
            ]
        }
    }
}';
$json = json_decode($content, true);
foreach ($json as $i) {
    $id = $i['id'];
    $category = $i['category'];
    $image = $i['json_metadata']['image'][0];
    echo $id;
    echo $category;
    echo $image;
}

试试这个代码

$content = '{
              "user": {
                  "id": "example glossary",
                  "category": "example glossary",
                  "json_metadata": {
                      "tags": ["new"],
                      "image": [
                        "https://s32.postimg.org/4twcn4yrp/13918652_1345543288792650_1255274463_o.gif"
                      ]
                  }
              }
            }';
$json = json_decode($content, true);
print_r($json['user']['json_metadata']['image'][0]);

您将获得:

https://s32.postimg.org/4twcn4yrp/13918652_1345543288792650_1255274463_o.gif

最新更新