파이프 라인에서 JSON 응답의 값을 검사하는 데 사용할 수있는 유닉스 (향기 선택) JSON 파서를 추천 할 수 있습니까?
npm install -g ramda-cli
파이프 라인에서 JSON 응답의 값을 검사하는 데 사용할 수있는 유닉스 (향기 선택) JSON 파서를 추천 할 수 있습니까?
npm install -g ramda-cli
답변:
Perl 코어에 내장 된 모듈을 사용하여이 명령 행 구문 분석기 (원하는 경우 bash 별명에 넣을 수 있음)를 사용할 수 있습니다.
perl -MData::Dumper -MJSON::PP=from_json -ne'print Dumper(from_json($_))'
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
내가 선호하는 python -m json.tool
기본 당 대부분의 * nix에서 스크립트 운영 체제에서 기본적 당 사용할 수 보인다.
$ echo '{"foo":1, "bar":2}' | python -m json.tool
{
"bar": 2,
"foo": 1
}
그러나 이것은 모든 키를 알파벳순으로 정렬하므로 정렬되지 않은 HashMaps를 사용하는 일부 언어로 json이 생성 된 경우 또는 좋은 것일 수 있습니다 ...
json.tool
json을 인쇄하기에 짧은 손입니다. 쉘 스크립트에서 json 데이터를 추출 / 조작 할 필요가있는 경우에는 다음과 같은 작업을 수행하는 것이 좋습니다 jq
.
json.tool
매일 열 번 사용한다 . 나는 질문에서 "introspec"의 의미를 잘못 읽은 것 같습니다. 지적 해 주셔서 감사합니다.
json.tool
두 가지 일, 즉 validate와 pretty-print json을 수행 하기 때문에 잘못된 대답 입니다. json의 값을 검사하지 않습니다 jq
.
휴대용 C 컴파일 도구를 찾고 있다면 :
http://stedolan.github.com/jq/
웹 사이트에서 :
jq는 JSON 데이터에 대한 sed 와 같습니다. 이를 사용하여 sed , awk , grep 및 friends가 텍스트를 사용할 수 있는 것과 동일한 방식으로 구조화 된 데이터를 슬라이스 및 필터링하고 매핑하고 변환 할 수 있습니다.
jq는 적은 노력으로 원하는 데이터 형식을 원하는 형식으로 변환 할 수 있으며 그렇게하는 프로그램은 종종 예상보다 짧고 단순합니다.
튜토리얼 : http://stedolan.github.com/jq/tutorial/
매뉴얼 : http://stedolan.github.com/jq/manual/
다운로드 : http://stedolan.github.com/jq/download/
apt install jq
.
jq
.
커맨드 라인 JSON 조작을 위해 특별히 설계된 모듈을 만들었습니다.
https://github.com/ddopson/underscore-cli
그것은 당신이 정말로 강력한 일을 쉽게 할 수있게합니다 :
cat earthporn.json | underscore select '.data .title'
# [ 'Fjaðrárgljúfur canyon, Iceland [OC] [683x1024]',
# 'New town, Edinburgh, Scotland [4320 x 3240]',
# 'Sunrise in Bryce Canyon, UT [1120x700] [OC]',
# ...
# 'Kariega Game Reserve, South Africa [3584x2688]',
# 'Valle de la Luna, Chile [OS] [1024x683]',
# 'Frosted trees after a snowstorm in Laax, Switzerland [OC] [1072x712]' ]
cat earthporn.json | underscore select '.data .title' | underscore count
# 25
underscore map --data '[1, 2, 3, 4]' 'value+1'
# prints: [ 2, 3, 4, 5 ]
underscore map --data '{"a": [1, 4], "b": [2, 8]}' '_.max(value)'
# [ 4, 8 ]
echo '{"foo":1, "bar":2}' | underscore map -q 'console.log("key = ", key)'
# key = foo
# key = bar
underscore pluck --data "[{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}]" name
# [ 'moe', 'larry', 'curly' ]
underscore keys --data '{name : "larry", age : 50}'
# [ 'name', 'age' ]
underscore reduce --data '[1, 2, 3, 4]' 'total+value'
# 10
또한 사용 가능한 최고의 "스마트 공백"JSON 포맷터 중 하나가 있습니다.
기능 요청이있는 경우이 게시물에 의견을 말하거나 github에 문제를 추가하십시오. 커뮤니티 회원이 필요로하는 기능의 우선 순위를 정하게되어 기쁩니다.
wget
마다 모든 URL이 제공됩니다.
underscore
중첩 된 객체와 배열이있는 중첩 된 json을 구문 분석하는 데 사용할 수 있습니까 ?
또한이 툴킷을 처리 JSON 명령 줄 당신이 당신의 스택 Node.js를하고 NPM이 일어날 경우는.
그리고 유닉스 명령 행에서 JSON을 마사지하기위한 또 다른 "json"명령 .
그리고 다른 대안이 있습니다 :
npm install json
.
json
는 이제 완전히 다른 패키지로 대체 된 것으로 보입니다.
Jshon 또는 JSON.sh를 언급 한 사람이 있습니까?
https://github.com/keenerd/jshon
json을 파이프하고 json 객체를 가로 지르고 현재 객체 (JSON 배열로)에 대한 경로를 인쇄 한 다음 공백없이 객체를 인쇄합니다.
http://kmkeen.com/jshon/
Jshon은 stdin에서 json 텍스트를로드하고 작업을 수행 한 다음 stdout에 마지막 작업을 표시하며 일반적인 텍스트 처리 파이프 라인의 일부로 만들어졌습니다.
brew install jshon
,cat *.json | jshon
들어 배쉬 / 파이썬 , 여기 파이썬의 주위에 기본 래퍼입니다 simplejson
:
json_parser() {
local jsonfile="my_json_file.json"
local tc="import simplejson,sys; myjsonstr=sys.stdin.read(); "`
`"myjson=simplejson.loads(myjsonstr);"
# Build python print command based on $@
local printcmd="print myjson"
for (( argn=1; argn<=$#; argn++ )); do
printcmd="$printcmd['${!argn}']"
done
local result=$(python -c "$tc $printcmd.keys()" <$jsonfile 2>/dev/null \
|| python -c "$tc $printcmd" <$jsonfile 2>/dev/null)
# For returning space-separated values
echo $result|sed -e "s/[]|[|,|']//g"
#echo $result
}
실제로 중첩 된 사전 스타일의 데이터 만 처리하지만 필요한 것에서 작동하며 json을 걷는 데 유용합니다. 아마 맛에 적응할 수 있습니다.
어쨌든, 또 다른 외부 의존성을 원치 않는 사람들을 위해 집에서 만든 것. 물론 파이썬을 제외하고.
전의. json_parser {field1} {field2}
를 실행 print myjson['{field1}']['{field2}']
하여 키 또는 {field2}
공백으로 구분 된 값을 생성합니다 .
방금 큰 json 객체를 쉽게 탐색 할 수 있도록 작은 명령 줄 json 탐색기 인 jkid 를 만들었습니다. 콘솔 오버플로를 피하기 위해 객체를 "횡 방향으로"탐색 할 수 있으며 "미리보기"옵션이 있습니다.
$ echo '{"john":{"size":20, "eyes":"green"}, "bob":{"size":30, "eyes":"brown"}}' > test3.json
$ jkid . eyes test3.json
object[.]["eyes"]
{
"bob": "brown",
"john": "green"
}
jkid
Mac에 어떻게 설치 합니까?