首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中解码包含多个对象的JSON字符串?

如何在PHP中解码包含多个对象的JSON字符串?
EN

Stack Overflow用户
提问于 2010-04-01 19:54:19
回答 1查看 54.3K关注 0票数 19

在这个示例How to decode a JSON String中,我知道如何在您的帮助下用一个对象解码一个JSON字符串

但是现在我想用几个对象来改进对JSON字符串的解码,但我不知道该怎么做。

下面是一个示例:

代码语言:javascript
复制
{ "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" }
 ]
}

  1. 如何只做一个foreach()来解码上面的JSON字符串?
  2. 如何检测对象的名称:收件箱,发送或草稿on this foreach()?
EN

回答 1

Stack Overflow用户

发布于 2010-04-01 20:06:40

您可以使用函数来解码JSON字符串:

代码语言:javascript
复制
$json = <<<JSON
{ "programmers": [
  { "firstName": "Brett", "lastName":"McLaughlin" },
  { "firstName": "Jason", "lastName":"Hunter" },
  { "firstName": "Elliotte", "lastName":"Harold" }
 ],
"authors": [
  { "firstName": "Isaac", "lastName": "Asimov" },
  { "firstName": "Tad", "lastName": "Williams" },
  { "firstName": "Frank", "lastName": "Peretti" }
 ],
"musicians": [
  { "firstName": "Eric", "lastName": "Clapton" },
  { "firstName": "Sergei", "lastName": "Rachmaninoff" }
 ]
}
JSON;

$data = json_decode($json);

然后,要查看数据的外观,您可以将其转储:

代码语言:javascript
复制
var_dump($data);

您将看到一个包含三个数组的对象,每个数组包含其他子对象:

代码语言:javascript
复制
object(stdClass)[1]
  public 'programmers' => 
    array
      0 => 
        object(stdClass)[2]
          public 'firstName' => string 'Brett' (length=5)
          public 'lastName' => string 'McLaughlin' (length=10)
      1 => 
        object(stdClass)[3]
          public 'firstName' => string 'Jason' (length=5)
          public 'lastName' => string 'Hunter' (length=6)
      ...
  public 'authors' => 
    array
      0 => 
        object(stdClass)[5]
          public 'firstName' => string 'Isaac' (length=5)
          public 'lastName' => string 'Asimov' (length=6)
      ...

这意味着你知道如何访问你的数据。

例如,要显示程序员列表,您可以使用:

代码语言:javascript
复制
foreach ($data->programmers as $programmer) {
  echo $programmer->firstName . ' ' . $programmer->lastName . '<br />';
}

这将使您获得以下输出:

代码语言:javascript
复制
Brett McLaughlin
Jason Hunter
Elliotte Harold
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2560096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档