영어프랑스어스페인어

Ad


온웍스 파비콘

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":[참,거짓,null,"str"],"c":{"d":4,"e":5}}
jshon [작업] < 샘플.json

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

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

jshon -t -> 객체

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

jshon -l -> 3

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

jshon -k -> abc

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

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

-a (across)는 선택한 요소 전체에 걸쳐 나머지 작업을 매핑합니다. 개체에만 작동
그리고 배열. 다수의 -a 실제로는 거의 필요하지 않지만 호출을 중첩할 수 있습니다.

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

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

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

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

jshon -n 객체 -> {}

-u (unstring)은 디코딩된 문자열을 반환합니다. 단순 유형(string, int, real,
부울, null.

jshon -eb -e 3 -u -> str

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

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

-d 색인
(삭제) 배열 또는 객체에서 항목을 제거합니다. 음수 배열 인덱스가 래핑됩니다.
약.

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

-i 색인
(삽입) 복잡합니다. 추출의 반대입니다. 추출은 json 하위 요소를 넣습니다.
스택에. 삽입은 스택에서 하위 요소를 제거하고 json의 해당 비트를 삽입합니다.
아래에 있는 더 큰 배열/객체에 넣습니다. 추출을 사용하여 json 트리를 살펴보세요.
delete/string/nonstring을 사용하여 변경하고 insert를 사용하여 변경 사항을 다시
나무.

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 (정렬)은 원래 순서 대신 키별로 정렬된 json을 반환합니다.

-Q (quiet) stderr에 대한 오류 보고를 비활성화하므로 "2> /dev/null"을 뿌릴 필요가 없습니다.
스크립트 전체에서.

-V (값 기준) 편집 내역 스택에서 값 기준 전달을 활성화합니다. 극단적인 경우
수천 개의 깊이 내포된 값으로 인해 몇 배 더 느리게 실행
몇 배 더 많은 메모리를 사용하면서. 그러나 by-value는 by-reference보다 안전하며
일반적으로 놀라움을 덜 유발합니다. By-reference는 기본적으로 활성화되어 있습니다.
읽기 전용 작업 중 위험하며 일반적으로 json 편집을 더 편리하게 만듭니다.

jshon -ec -n 7 -id -p -> c["d"] == 7
jshon -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의 구분 기호를 개행에서 null로 변경합니다. 이 옵션
줄 바꿈이 합법적으로 나타날 수 있는 유일한 시간이기 때문에 -u에만 영향을 미칩니다.
출력.

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

기타 도구


항상 한 줄에 하나의 필드를 출력합니다. 많은 유닉스 도구는 분리된 여러 탭을 기대합니다.
줄당 필드. 이 문제를 해결하려면 '붙여넣기'를 통해 출력을 파이프하십시오. 단, 붙여넣기 불가
빈 줄을 처리하므로 자리 표시자로 채웁니다. 다음은 예입니다.

jshon... | 세드 's/^$/-/' | 붙여넣기 -s -d '\t\t\n'

공백을 '-'로 바꾸고 세 줄마다 하나로 병합합니다.

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

줄을 읽는 동안; do jshon <<< "$line"; 완료 < <(journalctl -o json)

journalctl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | jshon

GOLF


매우 짧은 한 줄에 관심이 있는 경우 그렇지 않은 경우 인수가 압축될 수 있습니다.
모호함을 유발합니다. 의 예 -팝) 다음과 같이 골프를 칠 수 있습니다.

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

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

만들기 JSON


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

jshon -s one -ia <<< "{}"

작가


Kyle Keen이 작성했습니다.[이메일 보호]> Dave Reisner의 패치 포함
<[이메일 보호]>, AndrewF(BSD, OSX, jsonp, 정렬) 및 Jean-Marc A(solaris).

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


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad