Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Can';t筛选字符串中的值_Json_Syntax Error_Jq - Fatal编程技术网

Json Can';t筛选字符串中的值

Json Can';t筛选字符串中的值,json,syntax-error,jq,Json,Syntax Error,Jq,我需要用以下格式解析json { "meta": { "rc": "ok" }, "data": [ { "average_wifi_utilization": { "total": 21.928571428571427, "na": 9.035714285714286, "ng": 34.82142857142857 }, "devices_status": { "u

我需要用以下格式解析json

{
  "meta": {
    "rc": "ok"
  },
  "data": [
    {
      "average_wifi_utilization": {
        "total": 21.928571428571427,
        "na": 9.035714285714286,
        "ng": 34.82142857142857
      },
      "devices_status": {
        "uap": {
          "adopted": 28,
          "connected": 28,
          "disconnected": 0,
          "pending": 0,
          "disabled": 0
        },
        "usw": {
          "adopted": 2,
          "connected": 2,
          "disconnected": 0,
          "pending": 0
        },
        "ugw": {
          "adopted": 0,
          "connected": 0,
          "disconnected": 0,
          "pending": 0
        }
      },
      "wifi_score": {
        "client_score_avg": 81,
        "clients_with_poor_score": 8,
        "clients_with_fair_score": 3,
        "clients": 99,
        "retry_rate": 0,
        "signal": -61,
        "latency": 0
      }
    }
  ]
}
我需要从“client_score_avg”键中提取值

我能够通过以下方式提取第一级信息:

cat file.json | jq '.data'
然而,当我尝试下一步时

cat file.json | jq '.data.[0]'
我收到一条错误消息:

jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
jq:error:syntax error,意外的“[”,需要格式或QQSTRING_START(Unix shell引用问题?),第1行:

我不确定我做错了什么。

我认为您只需要执行以下操作。如果您的
数据[]
数组包含多个条目,请在
[…]
部分中指定索引。在您的情况下,下面的筛选器与在
[…]部分中将索引指定为
0
相同

jq '.data[].wifi_score.client_score_avg' file.json

我认为您只需要执行以下操作。如果
数据[]
数组包含多个条目,请在
[..]
部分中指定索引。在您的情况下,下面的筛选器与在
[..]
部分中将索引指定为
0
相同

jq '.data[].wifi_score.client_score_avg' file.json

jq是在告诉你你做错了什么,它说:
意外的“[”
。要解决这个问题,你要么省略前一个句点,要么使用未经修改的语法:
.data.[0]
。谢谢你。这也确实起作用:“cat file.json.[jq'.data.[0].wifi_score.client_score|avg”jq是在告诉你你做错了什么,它说:
意外的“[”
。要解决这个问题,你要么省略前一个句点,要么使用未经修改的语法:
.data.[0]
。谢谢你。这也确实起作用:“cat file.json.[jq'.data.[0].wifi_score.client_score|avg”