programing

명령줄을 사용하여 JSON 개체의 항목을 계산하려면 어떻게 해야 합니까?

lovejava 2023. 3. 15. 17:45

명령줄을 사용하여 JSON 개체의 항목을 계산하려면 어떻게 해야 합니까?

나 이런 거 받고 있어JSON에서 회답하다curl명령어:

[
  {
    "cid": 49,
    "pyn": "yi4",
    "hans": "亿",
    "hant": "億",
    "tid": 68,
    "l10n": "cent million",
    "pid": 1,
    "pos": "num",
    "pos_txt": ""
  },
  {
    "cid": 50,
    "pyn": "yi4",
    "hans": "亿",
    "hant": "億",
    "tid": 69,
    "l10n": "100 millions",
    "pid": 1,
    "pos": "num",
    "pos_txt": ""
  }
]

어레이 내의 항목 수를 카운트하려면 어떻게 해야 합니까(여기)2, 사용Bash또는 명령줄(예:underscore) ?

그냥 다른 해결책을 혼란에 던져버리면...

가볍고 유연한 명령줄 JSON 프로세서인 를 사용해 보십시오.

jq length /tmp/test.json

개체 배열의 길이를 인쇄합니다.

가장 짧은 표현은

curl 'http://…' | jq length

또한 jq를 사용하여 반환된 json 내의 배열을 추적한 후 1초 동안 파이프로 연결할 수 있습니다. jq전화를 걸어 길이를 확인합니다.그게 '아저씨'라는 부동산에 있었다고 가정해봅시다records,맘에 들다{"records":[...]}.

$ curl https://my-source-of-json.com/list | jq -r '.records | length'
2
$ 

이 경우,JSON파일을 읽고 있습니다.이것을 시험해 보세요.

number_of_objects=`jq '. | length' json_file_name.json`
echo $number_of_objects

이 경우,JSON어레이는 키 안에 있습니다.JSON아래 그림과 같이 -

{
  "fruits": [
    "apples",
    "oranges",
    "pears"
  ]
}

이것을 시험해 보세요-

number_of_objects=`jq '.fruits | length' json_file_name.json`
echo $number_of_objects

(이 솔루션이 작동하려면 다운로드해야 합니다.)

간단한 해결책은 라이브러리를 설치하는 것입니다.

jshon -l < /tmp/test.json
2

qic을 시험해 보다.jq/jello처럼 작동합니다.qic은 인터랙티브모드도 지원합니다.

cat test.json |qic "len(_)"

https://walkerever.github.io/qic/

언급URL : https://stackoverflow.com/questions/21334348/how-to-count-items-in-json-object-using-command-line