不能為 3 個變量分配多個值

訂閱者

要求

curl -XGET http\://my_host\:9111/api/issues/search\?componentKeys\=my_poject\&facets\=severities\&p\=1\&ps\=1

這裡回复:

{
  "total": 10057,
  "p": 1,
  "ps": 1,
  "paging": {
    "pageIndex": 1,
    "pageSize": 1,
    "total": 10057
  },
  "effortTotal": 51031,
  "issues": [
    {
      "key": "AX0NVCNfENszTAxEgX5e",
      "rule": "java:S122",
      "severity": "MINOR",
      "component": "my_project:SomeFile.java",
      "project": "my_project",
      "line": 241,
      "hash": "1111111111",
      "textRange": {
        "startLine": 241,
        "endLine": 241,
        "startOffset": 0,
        "endOffset": 46
      },
      "flows": [],
      "status": "OPEN",
      "message": "At most one statement is allowed per line, but 2 statements were found on this line.",
      "effort": "1min",
      "debt": "1min",
      "author": "eugeniur",
      "tags": [
        "convention"
      ],
      "creationDate": "2021-11-11T06:40:05+0200",
      "updateDate": "2021-11-11T06:40:05+0200",
      "type": "CODE_SMELL",
      "scope": "MAIN"
    }
  ],
  "components": [
    {
      "key": "my_project",
      "enabled": true,
      "qualifier": "TRK",
      "name": "Parent",
      "longName": "Parent"
    },
    {
      "key": "my_project:MyFile.java",
      "enabled": true,
      "qualifier": "FIL",
      "name": "XStartDServerComponent.java",
      "longName": "MyFile.java",
      "path": "MyFile.java"
    }
  ],
  "facets": [
    {
      "property": "severities",
      "values": [
        {
          "val": "CRITICAL",
          "count": 5818
        },
        {
          "val": "MAJOR",
          "count": 1459
        },
        {
          "val": "BLOCKER",
          "count": 1286
        },
        {
          "val": "MINOR",
          "count": 1163
        },
        {
          "val": "INFO",
          "count": 331
        }
      ]
    }
  ]
}

現在我想提取密鑰:"total", "issues", "facets.values".

所以我在我的 bash 腳本中嘗試這個:

#!/bin/bash
readonly BASE_URL=http://my_host:9111/api
readonly PROJECT_KEY=my_project

read totalIssues facetsArr issuesArr < <(echo $(curl -XGET $BASE_URL/issues/search\?componentKeys\=$PROJECT_KEY\&facets\=severities\&p\=1\&ps\=1 |
                       jq -r '.total, .issues[], .facets[].values'))
echo "total      : $totalIssues"
echo "facetsArr     : $facetsArr"
echo "issuesArr  : $issuesArr"

但結果是:

total      : 10057
facetsArr  : {
issuesArr  : "key": "AX0NVCNfENszTAxEgX5e", "rule": "java:S122", "severity": "MINOR", "component": "MyFile.java", "project": "myProject", "line": 241, "hash": "b68d3b4b390c81e2714d263b31acdd08", "textRange": { "startLine": 241, "endLine": 241, "startOffset": 0, "endOffset": 46 }, "flows": [], "status": "OPEN", "message": "At most one statement is allowed per line, but 2 statements were found on this line.", "effort": "1min", "debt": "1min", "author": "eugeniur", "tags": [ "convention" ], "creationDate": "2021-11-11T06:40:05+0200", "updateDate": "2021-11-11T06:40:05+0200", "type": "CODE_SMELL", "scope": "MAIN" } [ { "val": "CRITICAL", "count": 5818 }, { "val": "MAJOR", "count": 1459 }, { "val": "BLOCKER", "count": 1286 }, { "val": "MINOR", "count": 1163 }, { "val": "INFO", "count": 331 } ]

為什麼“ facetsArr ”得到不正確的值?

facetsArr ”必須是:

facetsArr  : [ { "val": "CRITICAL", "count": 5818 }, { "val": "MAJOR", "count": 1459 }, { "val": "BLOCKER", "count": 1286 }, { "val": "MINOR", "count": 1163 }, { "val": "INFO", "count": 331 } ]
切普納

效率稍低,但僅解析(小)響應 3 次會簡單得多。

#!/bin/bash
readonly BASE_URL=http://my_host:9111/api
readonly PROJECT_KEY=my_project

response=$(curl -XGET "$BASE_URL/issues/search?componentKeys=$PROJECT_KEY&facets=severities&p=1&ps=1")

total=$(jq '.total' <<< "$response")
issues=$(jq '.issues' <<< "$response")
facets=$(jq '.facets[].values' <<< "$response")

# ...

然後,你不必對建設有一個單獨的輸出擔心jq的是bash無論如何必須解析。

(如果issues數組issues中有多個對象,我特意留下了 JSON 數組的值,而不是 的流。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何為我的 3d 圖形著色,使用第四個變量的值?

如何為多個輸入分配一個整體變量?

檢查多個變量 angular/ts 中的一個值是否為假

如何在 R at nce 中將 tibble 的多個變量突變為相同的值

如何將多個變量重構為一個帶參數的變量?

在python中將多個變量作為一個變量傳遞

為多個變量創建一個條件 OR 的新變量

如何將“z”存儲為包含多個值的變量?

為單個變量分配不同的生命週期

為什麼這個變量返回負值?

如何檢查多個變量的相同條件並為每個變量返回匹配消息?

Vue 3:為什麼變量觀察器不能正常工作?

Python pandas 為多個輸出變量生成一個表

為數據集中兩個變量的每個組合保存變量的唯一值

為什麼我不能在同一行識別兩個變量

如何將多個列表從一個變量轉換為一個列表 (odoov11)?

為多個向量運行我的多變量函數?

為什麼數組的值可以被另一個變量改變

為什麼 State<T> 變量在分配新值時不能觸發 UI 更新?

如何為多個變量多次運行腳本?

將字符串分解為 R 中的多個虛擬變量

命令替換中的變量擴展為多個參數

如何將多個參數作為變量傳遞給應用程序?

Julia:如何將數據幀值轉換為單個變量

在 kotlin 中聲明全局變量默認為一個屬性值

如何根據另一個變量將 NA 值更改為特定值?

給@State private var 一個變量 Array 作為初始值

為什麼我不能在“exec”字符串中聲明一個全局變量

為什麼java編譯器不能識別for循環中變量的這個初始化?