PHP无法解码多级JSON数组

时间:2017-01-07 03:20:17

标签: php json

我正在做一个欺骗检测小软件,供PHP个人使用,代码扫描目录中的所有文件,对所有.JSON文件进行排序,然后解析并返回一些值。我有一个函数可以告诉我JSON文件的版本号:

function scan_Versions($dir) {
  $array = array();
  $rdi = new RecursiveDirectoryIterator($dir);
  foreach (new RecursiveIteratorIterator($rdi) as $filename => $file) {
    if(!is_dir($filename)) {
      $path_parts = pathinfo($filename);
      $ext = $path_parts["extension"]. PHP_EOL;
      if (strpos($ext, "json") !== false) {
        $str = file_get_contents($filename);
        $json = json_decode(utf8_decode($str), true);
        array_push($array,$json['id']);
      }
    }
  }
  return $array;
}

执行时,它会扫描文件,并从JSON文件中获取数据:http://pastebin.com/3VdEZW43(它获取id的第一个JSON部分< / p>

我需要一个像上面那样的函数来从中检索数据:

"libraries": [
    {
      "name": "oshi-project:oshi-core:1.1", <----- I NEED THIS!!!!!!!!!!
      "downloads": {
        "artifact": {
          "url": "https://libraries.[REMOVED].net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
          "sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
          "size": 30973
        }
      }
    }.......

来自包含"name":的{​​{1}}。有人可以帮我这么做吗?

1 个答案:

答案 0 :(得分:0)

我没有足够的代表来添加评论(这里是新的),但你想要

$json["libraries"][0]["name"]

$json["libraries"]["name"][0]

根据pastebin链接。