Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen jshon komutudur.
Program:
ADI
jshon — Kabuk için JSON ayrıştırıcısı
SİNOPSİS
jshon -[P|S|Q|V|C|I|0] [-F yolu] -[t|l|k|u|p|a] -[s|n] değer -[e|i|d] dizin
TANIM
jshon JSON'u ayrıştırır, okur ve oluşturur. mümkün olduğunca kullanılabilir olacak şekilde tasarlanmıştır.
kabuk içinde ve grep/sed/awk'dan yapılan kırılgan geçici ayrıştırıcıların yanı sıra
perl/python'dan yapılmış ağır tek satırlı ayrıştırıcılar.
jshon stdin'den json metnini yükler, eylemleri gerçekleştirir, ardından son eylemi stdout'ta görüntüler.
Seçeneklerden bazıları json, diğerleri ise düz metin özetleri verir. Çünkü Bash'in çok
zayıf iç içe veri yapıları, jshon JSON'u tipik bir yerel nesne olarak döndürmez
kütüphane olur. Bunun yerine jshon bir yığındaki düzenlemelerin geçmişini tutar ve
en üstteki JSON öğesi.
EYLEMLER
Her eylem kısa bir seçenek şeklini alır. Bazıları argüman gerektirir. Birçok örnek varken
of jshon birbirlerine iletilebilir, azaltmak için eylemler sırayla zincirlenmelidir.
aramalar. Tüm örnekler bu json örneğini kullanır:
{"a":1,"b":[doğru,yanlış,null,"str"],"c":{"d":4,"e":5}}
jshon [eylemler] < sample.json
En yaygın salt okunur kullanımlar yalnızca birkaçına ihtiyaç duyacaktır. -e eylemler ve bir -a ortasında
Onları.
-t (tür) dize, nesne, dizi, sayı, bool, null döndürür
jshon -t -> nesne
-l (uzunluk) bir tamsayı döndürür. Yalnızca dize, nesne, dizi üzerinde çalışır.
jshon -l -> 3
-k (anahtarlar) yeni satırla ayrılmış bir anahtar listesi döndürür. Sadece nesne üzerinde çalışır.
jshon -k -> abc
-e indeks
(özüt) "indeks"teki json değerini döndürür. Yalnızca nesne, dizi üzerinde çalışır. Endeksi bir
dizi bir tamsayıdır.
jshon -ec -> {"d":4,"e":5}
-a (karşısında) kalan eylemleri seçili öğe boyunca eşler. Sadece nesneler üzerinde çalışır
ve diziler. çoklu -a aramalar iç içe olabilir, ancak pratikte ihtiyaç nadirdir.
jshon -eb -a -t -> bool bool boş dize
-s değer
(string), json ile kodlanmış bir dize döndürür. Daha sonra (-i) var olan bir öğeye eklenebilir
yapısı.
jshon -s "ters\eğik çizgi" -> "geri\\eğik çizgi"
-n değer
(string olmayan/sayı) bir json öğesi döndürür. Daha sonra mevcut bir öğeye (-i) eklenebilir
yapı. Geçerli değerler 'true', 'false', 'null', 'array', 'object', integers ve
yüzer. Sırasıyla t, f, n, [] ve {} kısaltmaları da işe yarar.
jshon -n nesnesi -> {}
-u (unstring) kodu çözülmüş bir dize döndürür. Yalnızca basit türlerde çalışır: string, int, real,
boolean, boş.
jshon -eb -e 3 -u -> str
-p (pop) yığından son manipülasyonu çıkararak geçmişi geri sarar. İçin yararlı
bir nesneden birden çok değer çıkarmak.
jshon -ec -ed -u -p -ee -u -> 4 5
-d indeks
(sil) bir dizideki veya nesnedeki bir öğeyi kaldırır. Negatif dizi dizinleri sarılacak
etrafında.
jshon -db -> {"a":1,"c":{"d":4,"e":5}}
-i indeks
(insert) karmaşıktır. Ekstraktın tersidir. Extract, bir json alt öğesi koyar
yığın üzerinde. Insert, bir alt öğeyi yığından kaldırır ve o bit json'u ekler
altındaki daha büyük diziye/nesneye. json ağacına dalmak için özü kullanın,
bir şeyleri değiştirmek için delete/string/nonstring ve değişiklikleri geri itmek için ekleyin
ağaç.
jshon -ea -ia -> orijinal json
jshon -s one -ia -> {"a":"bir", ...}
Diziler özel bir şekilde işlenir. Geçen tamsayılar olmadan bir değer ekleyecektir.
üzerine yazmak. Negatif tamsayılar, 'append' dizesi gibi kabul edilebilir. üzerine yazmak için
dizideki bir değer: dizini silin, -n/s yeni değeri ve ardından dizine ekleyin.
jshon -eb -d 0 -sq -i 0 -> {"b":"q",false,null,"str"}
MANİPÜLASYON OLMAYAN
Doğrudan json'u düzenlemeyen birkaç meta seçenek vardır. Bunları en fazla bir kez arayın
çağırma.
-F
(dosya) stdin yerine bir dosyadan okur. Almak için manipülasyon olmayan tek seçenek
argüman.
-P (jsonp), normal şekilde devam etmeden önce bir jsonp geri aramasını kaldırır.
-S (sort) json'u orijinal sıralama yerine anahtara göre sıralanmış olarak döndürür.
-Q (sessiz) stderr'de hata raporlamayı devre dışı bırakır, böylece "2> /dev/null" serpmenize gerek kalmaz
senaryonuz boyunca.
-V (değere göre), düzenleme geçmişi yığınında değere göre geçişi etkinleştirir. Aşırı durumlarda
binlerce derin iç içe değer bu sonuçlanabilir jshon birkaç kat daha yavaş koşmak
birkaç kat daha fazla bellek kullanırken. Bununla birlikte, by-değer, by-referansdan daha güvenlidir ve
genellikle daha az sürprize neden olur. Referansa göre varsayılan olarak etkindir çünkü
salt okunur işlemler sırasında risk oluşturur ve genellikle json'u düzenlemeyi daha kolay hale getirir.
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
İle -V , değişiklikler basitçe yerine yığının içinden manuel olarak eklenmelidir.
ara değerlerin çıkması.
-C (devam) potansiyel olarak kurtarılabilir hatalar hakkında. Örneğin, olmayan değerlerin çıkarılması
var, iptal etmek yerine düzenleme yığınına 'boş' ekler. Davranış değişebilir
gelecek.
-I (yerinde) dosya düzenleme. Değiştirilecek bir dosya gerektirir ve bu nedenle yalnızca -F ile çalışır. Bu
bir json dosyasında küçük değişiklikler yapmak içindir. Kullanıldığında, normal çıkış bastırılır
ve düzenleme yığınının alt kısmı yazılır.
-0 (boş sınırlayıcılar) -u'nun sınırlayıcısını yeni satırdan boş değere değiştirir. Bu seçenek
yalnızca -u'yu etkiler çünkü bu, bir yeni satırın
çıktı.
--versiyon
Bir YYYYMMDD zaman damgası döndürür ve çıkar.
DİĞER ARAÇLAR
jshon her zaman satır başına bir alan verir. Birçok unix aracı, birden çok sekmenin ayrılmasını bekler
satır başına alanlar. Bunu düzeltmek için çıktıyı 'yapıştır' yoluyla iletin. Ancak, yapıştır olamaz
boş satırları işleyin, böylece yer tutuculu olanları doldurun. İşte bir örnek:
jshon... | sed 's/^$/-/' | yapıştır -s -d '\t\t\n'
Bu, boşlukları '-' ile değiştirir ve her üç satırı bir satırda birleştirir.
json çıktısı üreten daha fazla araç var. Genellikle bunlar çizgi yönelimli kullanır
json/plaintext hybrid, burada her satır bağımsız bir json yapısıdır. ne yazık ki bu şu anlama geliyor
çıktı bir bütün olarak meşru json değil. Veri satır satır olsa da döngü
(arıyor jshon her satır için bir kez) veya meşru bir json dizisine dönüştürün. Örneğin:
satırı okurken; jshon yapın <<< "$satır"; bitti < <(journalctl -o json)
dergictl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | jshon
GOLF
Son derece kısa bir astarı önemsiyorsanız, olmadığında argümanlar yoğunlaşabilir.
belirsizliğe neden olur. gelen örnek -pop) aşağıdaki gibi golf oynayabilirsiniz:
jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u
Bunu yapmanızı önermiyorum (anlamayı çok daha zorlaştırıyor) ama bazı insanlar
sonuçlarına rağmen golf.
OLUŞTURMA JSON
jshon boş bir nesneyi girdi olarak ileterek json oluşturabilir:
jshon -s bir -ia <<< "{}"
YAZARLAR
jshon Kyle Keen tarafından yazıldı.[e-posta korumalı]> Dave Reisner'dan yamalar ile
<[e-posta korumalı]>, AndrewF (BSD, OSX, jsonp, sıralama) ve Jean-Marc A (solaris).
onworks.net hizmetlerini kullanarak jshon'u çevrimiçi kullanın