php - 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);
?>
解决方案
您正在使用大括号 ( {}
) 和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);
?>
你可以在这里检查你想要的输出
推荐阅读
- decision-tree - catboost eval_metrics 返回值
- c# - 在 ComboBoxColumn 中获取 ComboBox 的名称
- angular - 使用 BehaviorSubject 从一个组件向另一个组件发送数据
- css - 改变IE输入框的宽度
- json - 如何在 WSO2 Integration Studio ESB 应用程序中传递不记名令牌,以便能够在 WSO2 API Publisher 中调用 API?
- r - 不完整的最后一行发现问题
- r - 如何从给定行号和列号的数据框中提取数千个单元格?
- java - 具有单个执行器的发布订阅通道
- flutter - 检查 youtube 视频上是否有隐藏式字幕
- regex - 正则表达式 - 删除字符串后面和之前的空格