栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何用PHP中的几个对象解码JSON字符串?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用PHP中的几个对象解码JSON字符串?

新答案

重新修改后的问题:

foreach
实际上适用于属性以及多值项(数组),请参见此处。例如,在您的问题中包含JSON字符串:

$data = json_depre($json);foreach ($data as $name => $value) {    // This will loop three times:    //     $name = inbox    //     $name = sent    //     $name = draft    // ...with $value as the value of that property}

在属性的主循环内,可以使用内部循环遍历每个属性指向的数组条目。因此,例如,如果您 知道 每个顶级属性都有一个数组值,并且每个数组条目都有一个“
firstName”属性,则此代码:

$data = json_depre($json);foreach ($data as $name => $value) {    echo $name . ':'    foreach ($value as $entry) {        echo '  ' . $entry->firstName;    }}

…将会呈现:

收件箱:  布雷特  杰森  艾略特发送:  伊萨克  塔德  坦率草案:  埃里克  谢尔盖

旧答案

开始编辑 发表您的评论:

现在,我想知道如何使用几个对象解码JSON字符串!

您发布的示例 确实 有多个对象,它们都全部包含在一个包装对象中。这是JSON的要求;您不能(例如)执行以下操作:

{"name": "I'm the first object"},{"name": "I'm the second object"}

该JSON无效。有 是一个顶级对象。它可能只包含一个数组:

{"objects": [    {"name": "I'm the first object"},    {"name": "I'm the second object"}]}

…或者当然可以给各个对象起一个名字:

{    "obj0": {"name": "I'm the first object"},    "obj1": {"name": "I'm the second object"}}

结束编辑

您的示例是一个包含三个属性的对象,每个属性的值是一个对象数组。实际上,它与您链接的问题中的示例并没有太大区别(该示例也有一个对象,该对象的属性具有数组值)。

所以:

$data = json_depre($json);foreach ($data->programmers as $programmer) {    // ...use $programmer for something...}foreach ($data->authors as $author) {    // ...use $author for something...}foreach ($data->musicians as $musician) {    // ...use $musician for something...}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号