【问题标题】:PHP Get value from JSONPHP 从 JSON 中获取值
【发布时间】:2012-09-26 09:03:42
【问题描述】:

假设我有这个 JSON:

{
  "achievement": [
    {
      "title": "Ready for Work",
      "description": "Sign up and get validated",
      "xp": 50,
      "difficulty": 1,
      "level_req": 1
    },
    {
      "title": "All Around Submitter",
      "description": "Get one piece of textual content approved in all five areas.",
      "xp": 500,
      "difficulty": 2,
      "level_req": 1
    }
}

我正在通过 PHP 尝试这个:

$string = file_get_contents("achievements.json");
$json_a=json_decode($string,true);

$getit = $json_a->achievement['title'][1];

我正在尝试获取成就的第一个“id”.. 这将是 READY FOR WORK

我该如何解决这个问题?

【问题讨论】:

  • 顺便提一下,在最后一个} 之前缺少],因为在添加缺少的方括号之前,您发布的内容无效。
  • 您的 json 无效,总是会返回错误
  • 我知道它无效。它更长,所以我只是给了一个简短的sn-p。一切都很好。

标签: php json


【解决方案1】:

json_decode的第二个参数设置为true时,会返回一个数组。

$json_a=json_decode($string,true);

返回一个数组。

$getit = $json_a['achievement'][1]['title'];

【讨论】:

  • 并将索引从 1 更改为零以获取 Ready for Work 项。毕竟,PHP 中的数组是从零开始索引的。
  • 啊,对,我太傻了……什么。谢谢。所以.. ID 从 0 开始。
  • @weka 是的,1 表示$json_a['achievement'] 的第二个元素。
猜你喜欢
  • 2021-06-17
  • 2019-07-20
  • 2012-09-07
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多