영어FrenchSpanish

서버 실행 | Ubuntu > | Fedora > |


온웍스 파비콘

jshon - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 jshon 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 jshon입니다.

프로그램:

이름


— 셸용 JSON 파서

개요


-[P|S|Q|V|C|I|0] [-F 경로] -[t|l|k|u|p|a] -[s|n] 값 -[e|i|d] 인덱스

기술


JSON을 구문 분석하고 읽고 생성합니다. 부터 최대한 사용가능하도록 설계되었습니다.
셸 내에서 grep/sed/awk로 만든 깨지기 쉬운 임시 파서를 대체합니다.
perl/python으로 만든 중량급 한 줄 파서.

stdin에서 json 텍스트를 로드하고 작업을 수행한 다음 stdout에 마지막 작업을 표시합니다.
일부 옵션은 json을 출력하고 다른 옵션은 일반 텍스트 요약을 출력합니다. Bash는 매우
빈약한 중첩 데이터 구조, JSON을 일반 개체로 반환하지 않습니다.
도서관 것이다. 대신에 스택에 편집 기록을 유지하고
최상위 JSON 요소.

ACTIONS


각 작업은 짧은 옵션의 형태를 취합니다. 일부는 인수가 필요합니다. 많은 경우가 있는 반면
of 서로를 통해 파이프 될 수 있으므로 작업을 순차적으로 연결하여
전화. 모든 예제는 다음 json 샘플을 사용합니다.

{"a":1,"b":[true,false,null,"str"],"c":{"d":4,"e":5}}
json [작업] < sample.json

가장 일반적인 읽기 전용 용도에는 몇 가지만 필요합니다. -e 행동과 하나 -a 의 중간에서
그들.

-t (유형)은 문자열, 객체, 배열, 숫자, bool, null을 반환합니다.

json -t -> 객체

-l (길이)는 정수를 반환합니다. 문자열, 개체, 배열에서만 작동합니다.

json -l -> 3

-k (keys)는 줄 바꿈으로 구분된 키 목록을 반환합니다. 개체에서만 작동합니다.

json -k -> abc

-e 색인
(추출) "인덱스"에서 json 값을 반환합니다. 객체, 배열에서만 작동합니다. 의 인덱스
배열은 정수입니다.

json -ec -> {"d":4,"e":5}

-a (cross)는 선택한 요소에 나머지 작업을 매핑합니다. 개체에서만 작동
및 어레이. 다수의 -a 실제로 필요한 경우는 드물지만 호출을 중첩할 수 있습니다.

jshon -eb -a -t -> bool bool null 문자열

-s 가치
(문자열)은 json으로 인코딩된 문자열을 반환합니다. 나중에 기존에 (-i) 삽입될 수 있습니다.
구조.

jshon -s "백\슬래시" -> "백\\슬래시"

-n 가치
(비문자열/숫자)는 json 요소를 반환합니다. 나중에 기존에 (-i) 삽입될 수 있습니다.
구조. 유효한 값은 'true', 'false', 'null', 'array', 'object', 정수 및
수레. 약어 t, f, n, [] 및 {}도 각각 작동합니다.

json -n 객체 -> {}

-u (unstring)은 디코딩된 문자열을 반환합니다. 단순 유형에서만 작동합니다: string, int, real,
부울, 널.

json -eb -e 3 -u -> str

-p (팝) 스택에서 마지막 조작을 팝하여 기록을 되감습니다. 에 유용한
하나의 객체에서 여러 값을 추출합니다.

json -ec -ed -u -p -ee -u -> 4 5

-d 색인
(delete) 배열이나 객체의 항목을 제거합니다. 음수 배열 인덱스는 래핑됩니다.
약.

json -db -> {"a":1,"c":{"d":4,"e":5}}

-i 색인
(삽입) 복잡합니다. 추출의 역순입니다. Extract는 json 하위 요소를 넣습니다.
스택에. 삽입은 스택에서 하위 요소를 제거하고 해당 json 비트를 삽입합니다.
아래의 더 큰 배열/객체로. 추출을 사용하여 json 트리로 다이빙,
삭제/문자열/비문자열을 변경하려면 삽입하고 변경 사항을 다시
나무.

jshon -ea -ia -> 원래 json
jshon -s 하나 -ia -> {"a":"하나", ...}

배열은 특별한 방식으로 처리됩니다. 정수를 전달하면 다음 없이 값이 삽입됩니다.
덮어쓰기. 음수는 'append' 문자열과 마찬가지로 허용됩니다. 덮어쓰려면
배열의 값: 인덱스 삭제, -n/s 새 값을 입력한 다음 인덱스에 삽입합니다.

jshon -eb -d 0 -sq -i 0 -> {"b":"q",false,null,"str"}

비조작


json을 직접 편집하지 않는 여러 메타 옵션이 있습니다. 당 최대 한 번 호출
기도.

-F
(file) stdin 대신 파일에서 읽습니다. 취할 수있는 유일한 비 조작 옵션
논의.

-P (jsonp)는 정상적으로 계속하기 전에 jsonp 콜백을 제거합니다.

-S (sort)는 원래 순서 대신 키로 정렬된 json을 반환합니다.

-Q (조용) stderr에서 오류 보고를 비활성화하므로 "2> /dev/null"을 뿌릴 필요가 없습니다.
당신의 스크립트 전반에 걸쳐.

-V (값별) 편집 기록 스택에서 값별 전달을 활성화합니다. 다음과 같은 극단적인 경우
수천 개의 깊이 중첩된 값으로 인해 몇 배 느리게 실행
몇 배 더 많은 메모리를 사용하는 동안. 그러나 값에 의한 것이 참조에 의한 것보다 안전하고
일반적으로 덜 놀라움을 유발합니다. 참조 기준이 없기 때문에 기본적으로 활성화됩니다.
읽기 전용 작업 중에 위험이 발생하고 일반적으로 json 편집을 더 편리하게 만듭니다.

json -ec -n 7 -id -p -> c["d"] == 7
json -V -ec -n 7 -id -p -> c["d"] == 5
jshon -V -ec -n 7 -id -ic -> c["d"] == 7

-V , 변경 사항은 단순히 스택을 통해 다시 삽입되어야 합니다.
중간 값을 팝니다.

-C (계속) 잠재적으로 복구 가능한 오류에 대해. 예를 들어,
존재는 중단하는 대신 편집 스택에 'null'을 추가합니다. 행동은 다음에서 변경될 수 있습니다.
미래.

-I (인플레이스) 파일 편집. 수정하려면 파일이 필요하므로 -F에서만 작동합니다. 이것은
json 파일을 약간 변경하기 위한 것입니다. 사용시 정상 출력 억제
편집 스택의 맨 아래가 기록됩니다.

-0 (null 구분 기호) -u의 구분 기호를 개행에서 널로 변경합니다. 이 옵션
줄 바꿈이 합법적으로 나타날 수있는 유일한 시간이기 때문에 -u에만 영향을 미칩니다.
출력.

--번역
YYYYMMDD 타임스탬프를 반환하고 종료합니다.

기타 투명, 반투명 옵션


항상 한 줄에 하나의 필드를 출력합니다. 많은 유닉스 도구는 여러 탭이 분리되어 있어야 합니다.
줄당 필드 수. 이 문제를 해결하려면 '붙여넣기'를 통해 출력을 파이프하십시오. 그러나 붙여 넣기는 할 수 없습니다
빈 줄을 처리하므로 자리 표시자로 채우십시오. 다음은 예입니다.

쟌 ... | sed 's/^$/-/' | 붙여넣기 -s -d '\t\t\n'

이것은 공백을 '-'로 바꾸고 모든 세 줄을 하나로 병합합니다.

json 출력을 생성하는 도구가 점점 더 많아지고 있습니다. 종종 이들은 라인 지향을 사용합니다.
각 줄이 독립적인 json 구조인 json/plaintext 하이브리드. 슬프게도 이것은 의미
출력 전체가 합법적인 json이 아닙니다. 데이터를 한 줄씩 반복합니다.
(부름 각 줄에 한 번) 또는 합법적인 json 배열로 변환합니다. 예를 들어:

라인을 읽는 동안; json <<< "$line"; 완료 < <(journalctl -o json)

저널ctl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | 쟌

GOLF


매우 짧은 하나의 라이너에 관심이 있다면 인수가 압축되지 않을 때 압축될 수 있습니다.
모호함을 유발합니다. 의 예 -팝) 다음과 같이 골프를 칠 수 있습니다.

jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u

나는 이것을하는 것을 권장하지 않지만 (이해하기가 훨씬 더 어려워집니다) 일부 사람들은
결과에도 불구하고 골프.

만들기 JSON


빈 객체를 입력으로 전달하여 json을 만들 수 있습니다.

json -s 하나 -ia <<< "{}"

작가


카일 킨이 작성했습니다예리한@gmail.com> Dave Reisner의 패치 포함
<d@falconindy.com>, AndrewF(BSD, OSX, jsonp, 정렬) 및 Jean-Marc A(solaris).

onworks.net 서비스를 사용하여 온라인에서 jshon 사용


Ad


Ad