首页 > 解决方案 > json_decode 将特定部分分配给字符串

问题描述

我在 $jsontest 上使用 json_decode (出于演示目的,因为它是确切的格式)。

问题是我正在尝试将附件7 的文件名、名称和类型分配为将变量分隔为字符串。我试过

$attachment7filename = $jsontest2->{'attachment7->filename'};       

例如,输出是 PHP 注意:

试图获得非对象的属性。

任何帮助,将不胜感激。

 <?php

    $jsontest = '{"attachment7":{"filename":"small.flv","name":"small.flv","type":"video/x-flv"},"attachment2":{"filename":"sample.png","name":"sample.png","type":"image/png"},"attachment6":    {"filename":"small.3gp","name":"small.3gp","type":"video/3gpp"},"attachment5":    {"filename":"small.webm","name":"small.webm","type":"video/webm"},"attachment3":    {"filename":"small.mp4","name":"small.mp4","type":"video/mp4"},"attachment1":        {"filename":"109-1new.jpeg","name":"109-    1new.jpeg","type":"image/jpeg"},"attachment4":    {"filename":"small.ogv","name":"small.ogv","type":"video/ogg"}}';

    $jsontest2 = json_decode($jsontest, true);

    $attachment7filename = $jsontest2->{'attachment7->filename'}; // should be small.flv for example
    $attachment7name = $jsontest2->{'attachment7->name'};
    $attachment7type = $jsontest2->{'attachment7->type'};

    var_dump($attachment7filename);

    ?>

标签: phpjson

解决方案


您正在使用大括号 ( {}) 和object参考,例如$jsontest2->{'attachment7->filename'};将其替换{'attachment7->filename'}['attachment7']['filename'];

这是代码

<?php

    $jsontest = '{"attachment7":{"filename":"small.flv","name":"small.flv","type":"video/x-flv"},"attachment2":{"filename":"sample.png","name":"sample.png","type":"image/png"},"attachment6":    {"filename":"small.3gp","name":"small.3gp","type":"video/3gpp"},"attachment5":    {"filename":"small.webm","name":"small.webm","type":"video/webm"},"attachment3":    {"filename":"small.mp4","name":"small.mp4","type":"video/mp4"},"attachment1":        {"filename":"109-1new.jpeg","name":"109-    1new.jpeg","type":"image/jpeg"},"attachment4":    {"filename":"small.ogv","name":"small.ogv","type":"video/ogg"}}';

    $jsontest2 = json_decode($jsontest, true);
//print_r($jsontest2);
    $attachment7filename = $jsontest2['attachment7']['filename']; // should be small.flv for example
    $attachment7name = $jsontest2['attachment7']['name'];
    $attachment7type = $jsontest2['attachment7']['type'];

    var_dump($attachment7filename);

    ?>

你可以在这里检查你想要的输出


推荐阅读