파이프 라인에서 JSON 응답의 값을 검사하는 데 사용할 수있는 유닉스 (향기 선택) JSON 파서를 추천 할 수 있습니까?
답변
Perl 코어에 내장 된 모듈을 사용하여이 명령 행 구문 분석기 (원하는 경우 bash 별명에 넣을 수 있음)를 사용할 수 있습니다.
perl -MData::Dumper -MJSON::PP=from_json -ne'print Dumper(from_json($_))'
답변
내가 선호하는 python -m json.tool
기본 당 대부분의 * nix에서 스크립트 운영 체제에서 기본적 당 사용할 수 보인다.
$ echo '{"foo":1, "bar":2}' | python -m json.tool
{
"bar": 2,
"foo": 1
}
그러나 이것은 모든 키를 알파벳순으로 정렬하므로 정렬되지 않은 HashMaps를 사용하는 일부 언어로 json이 생성 된 경우 또는 좋은 것일 수 있습니다 …
답변
휴대용 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/
답변
커맨드 라인 JSON 조작을 위해 특별히 설계된 모듈을 만들었습니다.
https://github.com/ddopson/underscore-cli
- FLEXIBLE -JSON 데이터 처리를위한 “스위스-아미-나이프”도구-간단한 프리티 프린터 또는 완전한 Javascript 명령 줄로 사용할 수 있습니다
- POWERFUL -underscore.js의 모든 기능을 제공합니다 (underscore.string 포함)
- SIMPLE은 – “펄 -pe”를 사용하여 유사한 JS 하나 라이너 쓸 간단 만든다
- CHAINED- 여러 명령 호출을 서로 연결하여 데이터 처리 파이프 라인을 만들 수 있습니다.
- MULTI-FORMAT- 입력 / 출력 형식에 대한 풍부한 지원-예쁜 인쇄, 엄격한 JSON 등 [출시 예정]
- 문서화 -모든 명령에 대한 여러 예제가 포함 된 우수한 명령 줄 설명서
그것은 당신이 정말로 강력한 일을 쉽게 할 수있게합니다 :
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에 문제를 추가하십시오. 커뮤니티 회원이 필요로하는 기능의 우선 순위를 정하게되어 기쁩니다.
답변
체크 아웃 틱틱 .
진정한 Bash JSON 파서입니다.
#!/bin/bash
. /path/to/ticktick.sh
# File
DATA=`cat data.json`
# cURL
#DATA=`curl http://foobar3000.com/echo/request.json`
tickParse "$DATA"
echo ``pathname``
echo ``headers["user-agent"]``
답변
또한이 툴킷을 처리 JSON 명령 줄 당신이 당신의 스택 Node.js를하고 NPM이 일어날 경우는.
그리고 유닉스 명령 행에서 JSON을 마사지하기위한 또 다른 “json”명령 .
그리고 다른 대안이 있습니다 :
- jq : http://stedolan.github.io/jq/
- fx : https://github.com/antonmedv/fx
- json : 선택 : https://github.com/dominictarr/json-select
- json-command : https://github.com/zpoley/json-command
- JSONPath : http://goessner.net/articles/JsonPath/ , http://code.google.com/p/jsonpath/wiki/Javascript
- jsawk : https://github.com/micha/jsawk
- jshon : http://kmkeen.com/jshon/
- json2 : https://github.com/vi/json2
답변
Jshon 또는 JSON.sh를 언급 한 사람이 있습니까?
https://github.com/keenerd/jshon
json을 파이프하고 json 객체를 가로 지르고 현재 객체 (JSON 배열로)에 대한 경로를 인쇄 한 다음 공백없이 객체를 인쇄합니다.
http://kmkeen.com/jshon/
Jshon은 stdin에서 json 텍스트를로드하고 작업을 수행 한 다음 stdout에 마지막 작업을 표시하며 일반적인 텍스트 처리 파이프 라인의 일부로 만들어졌습니다.
