SORU
28 Mayıs 2010, Cuma


JSON için iyi CLİ araçlar nelerdir?

Genel Sorun

Gerçi ben olabilir teşhis kök neden olan bir olay, belirleyici kaç kullanıcı etkiledi, ya da damıtma zamanlama günlükleri amacıyla değerlendirmek için performans ve verimlilik etkisi olan bir son kodunu değiştirmek, benim araçlar aynı kalırdı: grep, awk, sed, tr, uniq, sort, zcat, tail, head, join, ve split. Onları bir arada tutkal, Unix bize meraklısı biz filtresi var xargs borular ve verir. Eğer bu beni başarısız olursa, her zaman perl -e var.

Bu araçlar, CSV dosyaları, sekme ile ayrılmış dosyaları, günlük dosyaları, öngörülebilir bir satır biçimi ile işleme için mükemmel, ya da virgülle ayrılmış anahtar-değer çiftleri ile dosyaları. Diğer bir deyişle, her bir satır yok, içerik yanında olduğu dosya.

XML olarak Adlandırıldı

Geçenlerde XML Gigabayt kullanıcı tarafından kullanımı bir histogram oluşturmak için trol için gerekli. Bu Sahip olduğum araçları ile yeterince kolay oldu, ama daha karmaşık sorgular için normal yaklaşımları yıkmak. Bu gibi öğeleri içeren dosyalar var

<foo user="me">
    <baz key="zoidberg" value="squid" />
    <baz key="leela"    value="cyclops" />
    <baz key="fry"      value="rube" />
</foo>

Ve hadi <foo> başına <baz>s ortalama sayısı için kullanıcıdan bir eşleme oluşturmak istiyorum diyelim. Satır satır artık bir seçenek değil işleme: <foo> şu anda güncelleme için tanıdığım çok inceliyorum, bilmem gerek. Bu görevi tamamlayan Unıx bir liner herhangi bir tür gizemli olması muhtemeldir.

XML-arazi neyse ki, XPath, XQuery, XSLT gibi harika teknolojiler bize yardım etmek zorundayız.

Daha önce ben bakmış alışık kullanarak harika XML::XPath Perl modülü için başarmak sorgu gibi yukarıda, ama sonra bulma TextMate Plugin that could run an XPath expression against my current window durdum yazılı bir Perl komut dosyaları için XML sorgu. Ve ben sadece gelecekte kullanarak bunları yazarken yüklüyor ve ben sabırsızlıkla bekliyorum XMLStarlet öğrendi.

Çözümler JSON?

Yani bu benim soruya götürüyor: JSON için bu gibi herhangi bir alet var mı? Biraz araştırma görevi bana JSON dosyaları üzerinde benzer sorguları yapmak gerekir önce sadece bir zaman meselesi sadece, XPath ve XSLT gibi araçlar olmadan, böyle bir görevi çok daha zor olacak. Eğer JSON bir grup olsaydı bu gibi görünüyordu:

{
  "firstName": "Bender",
  "lastName": "Robot",
  "age": 200,
  "address": {
    "streetAddress": "123",
    "city": "New York",
    "state": "NY",
    "postalCode": "1729"
  },
  "phoneNumber": [
    { "type": "home", "number": "666 555-1234" },
    { "type": "fax", "number": "666 555-4567" }
  ]
}

Ve her bir kişi vardı telefon numaralarını ortalama sayısını bulmak istedim, XPath ile böyle bir şey yapabilirim:

fn:avg(/fn:count(phoneNumber))

Soru

  1. Orada komut satırı araçları "bu JSON dosyaları sorgulayabilirsiniz yol?
  2. Eğer bir grup işlemek için varsa Unix komut satırında JSON dosyaları araçlar kullanıyorsunuz?
  3. Heck, orada bile iş yapılıyor böyle bir sorgu dili yapmak için JSON için?
  4. Eğer bu gibi araçları kullanırsanız senin günlük iş, ne yaparsın dediğim gibi, ben onları sevmemek? Var herhangi bir frikiklerinden?

Seri hale getirme yapılıyor daha fazla ve daha fazla veri bu gelecekte büyük veri aktarımları analiz ederken çok önemli olacak gibi JSON, işleme araçları kullanarak fark ettim. JSON için dil kütüphaneleri çok güçlü ve kolay işlem bu tür, ama gerçekten insanların kabuk araçlar gerekli verileri ile oynamak izin vermek için komut dosyaları yazmak için yeterli değil.

İlgili Sorular

CEVAP
3 Ocak 2013, PERŞEMBE


Ben sadece bunu buldum:

http://stedolan.github.com/jq/

"uy hafif ve esnek komut satırı JSON bir işlemci."

2014 güncelleme:

@user456584 sözü:

Da var '' ('') jsontool. örneğin komut json Uy üzerinden tercih ederim. UNIX-y çok. Github.com/trentm/json – . bu proje için bir link burada:

jsonhttp://github.com/trentm/json orada README benzeri şeylerin uzun bir listesi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LAHWF

    LAHWF

    5 Kasım 2009
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009