англійськафранцузькаіспанська

Ad


Значок OnWorks

jshon - онлайн у хмарі

Запустіть jshon у постачальника безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда jshon, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


jshon — парсер JSON для оболонки

СИНТАКСИС


jshon -[P|S|Q|V|C|I|0] [-F шлях] -[t|l|k|u|p|a] -[s|n] значення -[e|i|d] індекс

ОПИС


jshon аналізує, читає та створює JSON. Він розроблений так, щоб бути максимально зручним для використання
всередині оболонки і замінює тендітні adhoc парсери, створені з grep/sed/awk, а також
важкі однорядкові парсери з perl/python.

jshon завантажує текст json із stdin, виконує дії, а потім відображає останню дію на стандартному виведенні.
Деякі параметри виводять json, інші виводять звичайний текстовий підсумок. Тому що Баш має дуже
погані вкладені структури даних, jshon не повертає JSON як рідний об'єкт, як типовий
бібліотека б. Натомість jshon зберігає історію редагування в стеку, а ви маніпулюєте
верхній елемент JSON.

ДІЇ


Кожна дія має форму короткого варіанту. Деякі потребують аргументів. Поки багато випадків
of jshon можуть бути передані один через одного, дії повинні бути з’єднані послідовно, щоб зменшити
дзвінки. Усі приклади використовують цей зразок json:

{"a":1,"b":[true,false,null,"str"],"c":{"d":4,"e":5}}
jshon [дії] < sample.json

Для найбільш поширеного використання лише для читання знадобиться лише кілька -e дії і один -a посередині
Ними.

-t (тип) повертає рядок, об’єкт, масив, число, bool, null

jshon -t -> об'єкт

-l (довжина) повертає ціле число. Працює лише з рядком, об’єктом, масивом.

jshon -l -> 3

-k (ключі) повертає список ключів, розділений новим рядком. Працює тільки на об’єкті.

jshon -k -> abc

-e індекс
(extract) повертає значення json за "індексом". Працює лише з об’єктом, масивом. Індекс an
масив є цілим числом.

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

-a (Across) відображає решту дій у вибраному елементі. Працює тільки з об’єктами
і масиви. Кілька -a виклики можуть бути вкладеними, хоча на практиці це буває рідко.

jshon -eb -a -t -> bool bool нульовий рядок

-s значення
(рядок) повертає рядок, закодований json. Пізніше можна (-i) вставити до існуючого
Структура.

jshon -s "назад\слеш" -> "назад\\слеш"

-n значення
(не рядок/число) повертає елемент json. Пізніше можна (-i) вставити до існуючого
структура. Дійсними значеннями є "true", "false", "null", "array", "object", цілі числа та
плаває. Абревіатури t, f, n, [] і {} відповідно також працюють.

jshon -n об'єкт -> {}

-u (unstring) повертає декодований рядок. Працює лише з простими типами: string, int, real,
логічне значення, нуль.

jshon -eb -e 3 -u -> str

-p (pop) витягує останню маніпуляцію зі стека, перемотуючи історію назад. Корисно для
вилучення кількох значень з одного об’єкта.

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

-d індекс
(видалити) видаляє елемент у масиві або об’єкті. Від’ємні індекси масиву будуть загорнуті
навколо.

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

-i індекс
(вставка) складна. Це зворотний бік екстракту. Extract поміщає піделемент json
на стеку. Insert видаляє піделемент зі стека і вставляє цей біт json
у більший масив/об’єкт під ним. Використовуйте екстракт, щоб зануритися в дерево json,
delete/string/nonstring, щоб змінити речі, і insert, щоб повернути зміни в файл
дерево.

jshon -ea -ia -> оригінальний json
jshon -s one -ia -> {"a":"one", ...}

З масивами обробляються особливим чином. Передача цілих чисел буде вставляти значення без
перезапис. Цілі від’ємні числа прийнятні, як і рядок 'append'. Щоб перезаписати
значення в масиві: видалити індекс, -н/с нове значення, а потім вставте в індекс.

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

НЕМАНІПУЛЯЦІЯ


Існує кілька мета-параметрів, які безпосередньо не редагують json. Зателефонуйте їм щонайбільше один раз
виклик.

-F
(файл) читає з файлу замість stdin. Єдиний варіант без маніпуляцій прийняти
аргумент.

-P (jsonp) видаляє зворотний виклик jsonp, перш ніж продовжити в звичайному режимі.

-S (sort) повертає json, відсортований за ключем, замість початкового порядку.

-Q (тихий) вимикає звіти про помилки на stderr, тому вам не потрібно розсипати "2> /dev/null"
протягом усього сценарію.

-V (за значенням) вмикає передачу за значенням у стеку історії редагування. У крайньому випадку с
Це може призвести до тисяч глибоко вкладених значень jshon працює в кілька разів повільніше
при цьому використовується в кілька разів більше пам'яті. Однак за значенням безпечніше, ніж за допоміжним посиланням і
зазвичай викликає менше здивування. Посилання ввімкнено за замовчуванням, оскільки його немає
ризик під час операцій лише для читання і загалом робить редагування 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 (продовжити) щодо потенційно виправних помилок. Наприклад, вилучення значень, які цього не роблять
exist додасть 'null' до стеку редагування замість припинення. Поведінка може змінитися в
майбутнє.

-I (на місці) редагування файлів. Потрібен файл для зміни, тому працює лише з -F. Це
призначений для внесення незначних змін у файл json. При використанні нормальний вихід пригнічується
і нижня частина стеку редагування записується.

-0 (нульові роздільники) Змінює роздільник -u з нового рядка на нульовий. Цей варіант
впливає лише на -u, тому що це єдиний раз, коли новий рядок може законно з'являтися в
вихід.

-- версія
Повертає мітку часу РРРРММДД і виходить.

ІНШІ ЗАСОБИ


jshon завжди виводить одне поле на рядок. Багато інструментів Unix очікують розділення кількох вкладок
полів на рядок. Щоб це виправити, передайте вихід через 'paste'. Однак пасти не можна
обробляйте порожні рядки, тому заповнюйте їх заповнювачем. Ось приклад:

jshon ... | sed 's/^$/-/' | вставити -s -d '\t\t\n'

Це замінює пробіли на "-" і об'єднує кожні три рядки в один.

З'являється все більше і більше інструментів, які виробляють вихід json. Часто вони використовують орієнтований на лінію
Гібрид json/plaintext, де кожен рядок є незалежною структурою json. На жаль, це означає
вихід в цілому не є законним json. Будь-який цикл даних рядок за рядком
(дзвонить jshon один раз для кожного рядка) або перетворити його на законний масив json. Наприклад:

рядок під час читання; do jshon <<< "$line"; виконано < <(journalctl -o json)

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

ГОЛЬФ


Якщо вас турбують надзвичайно короткі одиниці, аргументи можна стиснути, коли це не так
викликають двозначність. Приклад з -p(op) можна грати в гольф наступним чином:

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

Я не рекомендую це робити (це значно ускладнює розуміння), але деяким людям
гольф, незважаючи на наслідки.

СТВОРЕННЯ JSON


jshon може створити json, передавши порожній об'єкт як вхід:

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

AUTHORS


jshon був написаний Кайлом Кіном[захищено електронною поштою]> із патчами від Дейва Рейснера
<[захищено електронною поштою]>, AndrewF (BSD, OSX, jsonp, сортування) та Jean-Marc A (solaris).

Використовуйте jshon онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad