2 puan yazan GN⁺ 2023-12-10 | 1 yorum | WhatsApp'ta paylaş

JC JSON dönüştürücüsü özeti

  • jc, CLI araçlarının, dosya türlerinin ve genel dizgelerin çıktısını JSON biçimine dönüştürerek betiklerde daha kolay ayrıştırılmasını sağlar.
  • dig komutunun örneği üzerinden JSON biçimine dönüştürülmüş çıktı görülebilir ve bu çıktı jq ya da jello gibi araçlarla ek olarak işlenebilir.
  • Python kütüphanesi olarak da kullanılabilir; bu durumda JSON yerine Python sözlüğü, sözlük listesi veya sözlüklerin tembel yinelenebilir nesnesini döndürür.

JC JSON dönüştürücüsü nasıl kurulur

  • pip, işletim sistemi paket depoları veya ikili dosya indirme yoluyla kurulabilir.
  • Çeşitli Linux dağıtımları, macOS ve FreeBSD için kullanılabilecek kurulum komutları sunulur.

JC JSON dönüştürücüsü nasıl kullanılır

  • STDIN üzerinden pipe edilen girdiyi alır ve önceki komutun çıktısını STDOUT üzerinden JSON biçiminde verir.
  • “Sihirli” söz dizimiyle komutun başına jc eklenerek dönüşüm yapılabilir veya /proc dosya yolu önünde kullanılabilir.
  • Çeşitli parser seçenekleri ve slice özellikleriyle çıktı biçimi ayarlanabilir ve belirli satırlar işlenebilir.

JC JSON dönüştürücüsünün özellikleri

  • Varsayılan ve ham veri gösterimleri sunar; şemaya göre bilinen sayıları int/float JSON değerlerine dönüştürür.
  • --raw seçeneği veya raw=True parametresiyle ham, ön işlenmiş JSON'a erişilebilir.
  • Streaming parser sayesinde büyük komut çıktıları bellek açısından verimli şekilde işlenebilir.

JC JSON dönüştürücüsünün önemi

  • Unix felsefesini 21. yüzyıla taşımayı amaçlayan projenin motivasyonu ve kullanım örnekleri blog yazıları ve röportajlarda görülebilir.
  • Bash betikleri, Ansible, Saltstack, Nornir, FortiSOAR gibi çeşitli ortamlarda komut çıktısı ayrıştırmak için faydalıdır.

JC JSON dönüştürücüsünün uyumluluğu

  • Bazı parser'lar platformdan bağımsız çalışır; platforma özgü çıktıları dönüştüren parser'lar ise uyumluluk uyarı mesajları üretebilir.
  • Tüm parser bilgileri jc -ap çalıştırılarak görülebilir.

JC JSON dönüştürücüsüne nasıl katkı sağlanır

  • Kod ya da parser ekleme/geliştirme katkıları memnuniyetle karşılanır; jc/parsers/foo.py veya jc/parsers/foo_s.py şablon olarak kullanılarak pull request gönderilebilir.

GN⁺ görüşü

Bu yazıdaki en önemli nokta, jc aracının çeşitli komutların, dosya türlerinin ve dizgelerin çıktısını JSON'a dönüştürerek bunların programatik olarak işlenmesini sağlamasıdır. Bu, geliştiricilerin veriyi daha kolay ele almasına yardımcı olur ve özellikle Unix ile Linux ortamlarında betik yazarken faydalıdır. Yazıyı ilginç kılan şey, jc aracının yazılım geliştirme ve sistem yönetiminde otomasyon ile verimliliği önemli ölçüde artırabilecek bir araç olmasıdır.

1 yorum

 
GN⁺ 2023-12-10
Hacker News görüşleri
  • FreeBSD'de libxo kütüphanesi kullanılarak komut çıktısını JSON biçimine dönüştürme sorununu çözme

    • ls komutu destekleniyordu, ancak sonradan kaldırıldığı örnekler var
    • Tüm yardımcı araçlarda desteklenmiyor
    • PowerShell varsayılan olarak yapılandırılmış çıktı sunuyor
    • Unix/Linux'ta da --json bayrağının standartlaşması gerektiği öne sürülüyor
  • Bakım zorluğuna dair endişeler dile getiriliyor

    • Sürüm yönetimi, komut bayraklarının değişmesi gibi nedenlerle bakımın zor olacağı düşünülüyor
    • --<CMD> araç kullanımının yardım/metin ve kılavuzları karmaşıklaştırabileceği belirtiliyor
  • Nushell adlı araç tanıtılıyor

    • Kabuğun kendisinin yapılandırılmış veri sunması yaklaşımı benimseniyor
  • CLI araçlarının JSON çıktısını desteklemesine olumlu bakılıyor

    • Ancak çoğu zaman fiilen JSON olsa da karmaşık veya gereksiz olduğu için pratikliği sorgulanıyor
  • jc aracının kullanım biçimi hakkında görüş

    • jc dig example.com kullanımının dig example.com | jc --dig yerine ana kullanım şekli olması gerektiği söyleniyor
  • PowerShell'de tüm çıktının nesne olması özelliğine duyulan beğeni ifade ediliyor

    • Bash betikleri yazarken bu özelliğin özlendiği belirtiliyor
  • jc aracının bakımını üstlenen kişiye saygı ifade ediliyor

  • --json seçeneğini kabul eden modern Unix komut satırı araçlarının listesi soruluyor

    • Bu bilginin depoya eklenmesinin faydalı olabileceği söyleniyor
  • Unix'in tasarım kusurlarına dikkat çekiliyor

    • Komut programları, çağıran programa yalnızca tamsayı çıkış kodu verebiliyor
    • GUI programları komut programlarını çağırdığında sınırlı bilgi elde ediyor
  • textfsm kullanılmamış olmasına şaşırılıyor

    • Ağ cihazlarının CLI çıktısını ayrıştırmak için textfsm yaygın olarak kullanılıyor