从json中检索字符串

时间:2018-05-17 14:32:01

标签: php json

我正在尝试从某些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'};

    ?>

但似乎没有输出值。

2 个答案:

答案 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

    ?>