busybox에서 JSON을 구문 분석하기 위한 쉘 스크립트는 어디에서 찾을 수 있나요?

busybox에서 JSON을 구문 분석하기 위한 쉘 스크립트는 어디에서 찾을 수 있나요?

armv5tejl 아키텍처를 갖춘 IP 카메라가 있습니다. 거기에 busybox가 있습니다. 컬에서 JSON 응답을 구문 분석할 수 있어야 합니다. 문제는
jq, jshon, jsawk와 같은 프로그램이 없다는 것입니다.
이 아키텍처에는 설치하기가 어렵습니다. JSON 개체와 JSON 배열을 구문 분석할 수 있는 일부 셸 스크립트를 찾아야 합니다.

이 스크립트를 찾을 수 있으면 표시해 주세요.

답변1

당신은 ash 또는 bash를 가지고 있으므로 사용할 수 있습니다json.sh. 당신은 awk를 가지고 있으므로 사용할 수 있습니다json.awk.

답변2

Grochmar가 말했듯이. 꽤 좋은 jq가 있지만 컴파일할 수 없습니다.
우리는 또한 사용할 수 있습니다JSON.awkjson을 구문 분석합니다(매우 편리하지는 않지만 실행 가능). 예:

echo -e jsonFile | awk -f JSON.awk

필요한 키와 값을 얻으려면 출력을 grep할 수 있습니다. 예(Google 드라이브 폴더를 사용하여 json 응답을 구문 분석하여 폴더의 모든 ID 찾기):

echo -e jsonResponse | awk -f JSON.awk | egrep '\["items",[0-9]+,"id"\]' 

답변3

물론 2023년 현재(외부 프로그램을 설치할 수 없는 경우) busybox에서 json을 구문 분석하는 가장 좋은 방법은 다음 기능을 사용하는 것입니다.JSON.sh

컬이 크고 복잡한 json(80kb 이상)을 반환하면 구문 분석이 매우 느리지만 더 빠르게 만들기 위해 노력하고 있습니다... 관심이 있으시면 github.com 프로젝트를 따르세요.

이 게시물은 수년이 지났기 때문에 2023년에 오랜 검색과 많은 테스트 끝에 더 나은 bash 전용 json 구문 분석 라이브러리(거의 모든 이상한 사례를 처리할 수 있음)를 찾지 못했음을 확인하기 위해 오늘 게시합니다. 문자, 문자열... 컬의 응답에서 이를 만날 수 있습니다. 이는 json 형식의 문자열입니다. 따라서 거의 모든 경우에 작동합니다.

관련 정보