从JSON中获取PHP值

3

假设我有以下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

我该如何解决这个问题?


只是提一下,在最后一个 } 之前缺少一个 ],因为你发布的代码在添加缺失的方括号之前是无效的。 - tradyblix
你的 JSON 不合法,会一直返回错误。 - Baba
我知道这不是有效的。因为它太长了,所以我只给了一个简短的片段。一切都好。 - test
一个相关的参考问题:如何使用PHP从JSON中提取和访问数据? - hakre
1个回答

9

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

$json_a=json_decode($string,true);

返回一个数组。
$getit = $json_a['achievement'][1]['title'];

3
将索引从1更改为0,即可获得“准备工作”项目。毕竟,在PHP中的数组是以零为基础进行索引的。 - zeebonk
啊,对了,我太傻了,像什么一样。谢谢。所以...这些ID从0开始。 - test
1
@weka 是的,1 表示 $json_a['achievement'] 的第二个元素。 - xdazz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接