본문 바로가기
프로그램 (PHP,Python)

JSON 데이터를 각각의 객체로 분할하여 형식을 변환하는 jq 명령어

by 날으는물고기 2024. 2. 19.

JSON 데이터를 각각의 객체로 분할하여 형식을 변환하는 jq 명령어

{
  "BEGIN": {
    "type": "text",
    "fields": {
      "float": {
        "type": "float",
        "ignore_malformed": true
      },
      "keyword": {
        "type": "keyword",
        "ignore_above": 128
      }
    }
  },
  "END": {
    "type": "text",
    "fields": {
      "float": {
        "type": "float",
        "ignore_malformed": true
      },
      "keyword": {
        "type": "keyword",
        "ignore_above": 128
      }
    }
  },
 ...
}

위 형태의 JSON 데이터 객체를 분리하여 아래처럼 바꾸기 위한 jq 명령어에 대한 예시입니다.

{ "BEGIN" : ... }
{ "END": ... }
...

JSON 데이터를 다른 형식으로 변환하기 위해 jq 명령어를 사용할 수 있습니다. 제공된 JSON 데이터를 각각의 객체로 분할하여 { "BEGIN": ... }, { "END": ... } 등의 형식으로 변환하기 위해서는 jq를 다음과 같이 사용할 수 있습니다.

jq 'to_entries | .[] | { (.key) : .value }' input.json

이 명령어는 무엇을 하는가?

  1. to_entries: JSON 객체를 키-값 쌍의 배열로 변환합니다.
  2. .[]: 배열의 각 요소에 대해 반복합니다.
  3. { (.key) : .value }: 각 키와 값을 새로운 객체로 생성합니다.

이 명령은 원래 JSON 객체의 각 키 (BEGIN, END 등)와 해당 값을 별도의 JSON 객체로 분리하여 출력합니다. 결과는 원하는 형식대로 각각의 JSON 객체로 나타납니다.

단, 이 명령을 사용하기 전에 제공된 JSON이 유효한지 확인하고, 필요한 경우 input.json을 실제 JSON 파일 이름으로 바꿔 사용하세요.

728x90

댓글