본문 바로가기
Study/Jenkins

jq를 사용해서 JSON 값 변경하기

by Zeromk2 2023. 6. 23.
728x90

Jenkins를 사용하다 보면 해당 job을 돌리기 전에 JSON값을 수정해야 하는 상황이 생길 수 있습니다.
이럴때 jq 를 사용하여 간단하게 할 수 있는데요 
기본 내장 기능이 아니기 때문에 설치가 필요합니다.

brew install jq

 
설치 완료 후 변경할 JSON파일 이름과 변경할 대상 key, 그리고 변경할 value가 정해지면 아래의 양식으로 작성합니다.

jq ‘.values |= map(if .key == “{대상 key 명}” then .value = {변경할 값} . end)’ {변경할 json파일} > temp.json && mv temp.json {변경할 json파일}

 
변경할 JSON파일 이름이 user_info.json 
변경할 대상 key가 user_token
변경할 value가 blabla 이면 아래처럼 변경할 수 있습니다.

jq ‘.values |= map(if .key == “user_token” then .value = "blabla" else . end)’ user_info.json > temp.json && mv temp.json user_info.json

 
변경할 value는 Jenkins parameter로 받아서 사용할 수도 있습니다.
만약 Jenkins parameter 이름이 token_value 라면 아래처럼 변경할 수 있습니다.

jq ‘.values |= map(if .key == “user_token” then .value = $token_value else . end)’ user_info.json > temp.json && mv temp.json user_info.json

 
이제 CLI나 Jenkins Execute Shell 에서 자유롭게 json파일의 값을 변경해봅시다~! 

댓글