2016-08-01 132 views
-2

得到一个孩子这是我的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; 
} 

回声的$ id和$类工作得很好。但是,$图像错误: 警告:非法字符串偏移“图像”

任何想法我错过了什么?

+3

尝试$ i ['json_metadata'] ['image'] [0]; –

+0

没有。同样的错误。 –

+0

请显示json字符串的完整结构。 –

回答

0

json_metadata是循环中的数组,所以你只需要从阵列获取的数据,我们在做的阵列。这很简单...这将现在工作foreach循环。你也可以在循环中打印json_metadata数组。

$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; 
} 
+0

请在您的答案中添加解释以帮助未来的访问者。 –

+0

json_metadata是循环内的数组,因此您只需要像在数组中那样从数组中获取数据。这很简单...这将现在工作foreach循环。你也可以在循环中打印json_metadata数组。 – Jitendra

0

试试这个代码

$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