使用jq并遍历json并获取多个值

时间:2019-11-22 22:08:11

标签: json jq

我有命令使用json文件中的jq获取单个响应。但是使用[]时不会显示多个值。 这是我的json

{
  "status" : "UP",
  "details" : {
    "Service1" : {
      "status" : "UP",
      "details" : {
        "Credit" : {
          "status" : "UP",
          "details" : {
            "Tablename" : "credittable"
          }
        }
      }
    },
    "Service2" : {
      "status" : "UP",
      "details" : {
        "Debit" : {
          "status" : "UP",
          "details" : {
            "Tablename" : "debittable"
          }
        }
      }
    },
    "Service3" : {
      "status" : "UP",
      "details" : {
        "Loan" : {
          "status" : "UP",
          "details" : {
            "Tablename" : "loantable"
          }
        }
      }
    }
  }
}

下面是我的命令:

cat api.json | jq '.details.Service1.status'
cat api.json | jq '.details.Service1.details.Credit.status'
cat api.json | jq '.details.Service1.details.Credit.details.TableName

当前将这些值分配给各个变量,然后进行回显,以查看是否可以循环并用一个命令显示所有内容。

我正尝试如下打印

Service1  up  
credittable  up  
Service2 UP  
debittable up  
Service3 up  
loantable up  

1 个答案:

答案 0 :(得分:2)

使用-r选项,以下过滤器:

<?php 
  include('Table.php');
  $table = new Table('myTable');
  $result=mysqli_query($sql_link, $query);
  $table->setData($result);
?>
<html>
  <body>
    $table->render();
  </body>
</html>

产生所需的输出。