JQ를 사용하여 간단한 구분된 출력 얻기

JQ를 사용하여 간단한 구분된 출력 얻기

이 상황을 바꾸는 방법:

{
  "write": {
    "out": 0,
    "available": 128,
    "totalTickets": 128
  },
  "read": {
    "out": 7,
    "available": 249,
    "totalTickets": 256
  }
}

입력하다

0 128 128 7 249 256

jq를 사용하시겠습니까?

답변1

다음과 같이 JSON 트리를 재귀적으로 낮출 수도 있습니다.

>jq 'recurse|numbers' data.json
0
128
128
7
249
256

(이것은 귀하의 모든 가치가 다음과 같다고 가정합니다.숫자, 사용스칼라부울과 문자열도 원하는 경우)

아니면 약어 표기법을 사용하세요.재귀,지금 바로..

..|numbers

(@cuonglm 감사합니다!)

주의하시기 바랍니다지도 |방법 이 방법은 임의로 중첩된 개체 트리에도 적용됩니다.

예를 들어

{
  "write": {
    "out": 0,
    "available": 128,
    "totalTickets": 128
  },
  "read": {
    "out": 7,
    "available": 249,
    "totalTickets": 256,
    "details" : {
        "good": 10,
        "bad" : 20
    }
  }
}

생산할 것입니다:

0
128
128
7
249
256
10
20

답변2

$ jq 'map(map(values))|flatten|.[]' data.json
0
128
128
7
249
256

첫 번째 부분이 생성됩니다.

[
  [
    0,
    128,
    128
  ],
  [
    7,
    249,
    256
  ]
]

이는 다음과 같이 평면화됩니다.

[
  0,
  128,
  128,
  7,
  249,
  256
]

이 값을 추출 .[]합니다.

관련 정보