我正在尝试从某些json代码中检索URL字符串。
这是json代码
{"files":["www.example1.com"],"previews":["www.example1preview.com"],"meta":{},"userId":"guest","product":{"id":"2335","name":"standard"},"type":"u"}
看看我在PHP手册中看到的内容,我正在尝试检索这样的预览。
<?php
ob_start();
include('getjson.php');
$meta_value_json = ob_get_clean();
echo $meta_value_json;
$meta_value_json = json_decode($meta_value_json);
print $meta_value_json->{'previews'};
?>
但似乎没有输出值。
答案 0 :(得分:1)
通过在终端上试验php -a命令,我将你的json放入json_decode并设法通过以下方式获取你的链接:
print $meta_value_json->previews[0];
使用print $ meta_value_json-&gt; {'previews'}的唯一原因;至少根据php文档,如果你想要一个对象作为输出,并且试图检索的密钥是数字或php不支持的类型。
通过进一步试验,打印$ meta_value_json-&gt; {'previews'}的原因;失败是因为print需要一个字符串,在我们的例子中预览是一个数组。因此,如果你打印$ meta_value_json-&gt; {'previews'} [0];它也会按预期工作。
答案 1 :(得分:-2)
你需要从解码的json中获取这样的值:$ class-&gt;参数。 知道预览是一个数组,你还需要选择一个特定的元素来打印(我得到了第一个):
<?php
ob_start();
include('getjson.php');
$meta_value_json = ob_get_clean();
echo $meta_value_json;
$meta_value_json = json_decode($meta_value_json);
print $meta_value_json->previews[0]; /// get the specific value
?>