但是现在我想改善对带有多个对象的JSON字符串的解码,但我不知道该怎么做。
这是一个例子:
{ "inbox": [
{ "firstName": "Brett", "lastName":"McLaughlin" },
{ "firstName": "Jason", "lastName":"Hunter" },
{ "firstName": "Elliotte", "lastName":"Harold" }
],
"sent": [
{ "firstName": "Isaac", "lastName": "Asimov" },
{ "firstName": "Tad", "lastName": "Williams" },
{ "firstName": "Frank", "lastName": "Peretti" }
],
"draft": [
{ "firstName": "Eric", "lastName": "Clapton" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff" }
]
}
重新修改后的问题:foreach
实际上适用于属性以及多值项(数组),请参见此处。例如,在您的问题中包含JSON字符串:
$data = json_decode($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_decode($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_decode($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...
}
问题内容: 我有一个看起来像这样的JSON字符串: 什么是解码此和地点PHP ,,,,和到会话变量? 到目前为止,我已经尝试过了,但是没有用: 谢谢! 问题答案: 是您了解JSON结构的朋友。 结果是:
问题内容: 大家!我可以请您帮我解码以下JSON代码: 我想将上述结构组织为: 注1: 文件夹:收件箱 来自(来自):… 日期(日期):… 时间(时间):… utcOffsetSeconds:… 收件人(地址):… 收件人(姓名):… 状态(deliveryStatus):… 文字(正文):… 笔记2: … 先感谢您! 问题答案: 您可以使用该函数来解码JSON字符串: 而且您会得到像这样的东西:
问题内容: 我从SQL查询中得到以下结果: 当前是PHP中的字符串。我知道它已经是JSON形式,有没有简单的方法可以将其转换为JSON对象? 我需要将其作为一个对象,以便可以像“ Coords”一样添加一个额外的项目/元素/对象。 问题答案: @deceze说的是正确的,看来您的JSON格式不正确,请尝试以下操作: 使用到的字符串转换成对象()或数组:http://php.net/manual/e
问题内容: 我有一个包含1-n纬度/经度记录的JSON字符串。看起来像这样: 什么是解析此值以获取经纬度值循环的好方法?转义的双引号是否会影响解析? 谢谢亚历克斯 问题答案: 打印…
问题内容: 我有一些json,我需要解码,更改然后编码,而不会弄乱任何字符。 如果我在json字符串中包含unicode字符,它将无法解码。我不知道为什么,因为json.org说一个字符串可以包含:。但这在python中也不起作用。 我可以使用utf8_encode,该字符串将允许使用json_decode对字符串进行解码,但是字符会被压缩成其他形式。这是来自结果数组的print_r的结果。两个字
问题内容: 这是我从提要查找器URL(JSON编码)中作为字符串得到的: 我如何在php中使用json_decode()函数对其进行解码并获取最后一个数组元素(“提要”)?我尝试了以下代码,但没有运气 请帮忙 .. 问题答案: 请注意,使用第二个参数调用它时,已经返回一个数组。 更新: 作为JSON中的值 是一个对象数组,其内容为: 要获取URL,您必须使用或访问数组。 但这是数组的基本处理。也许