JSON Dizisi NDJSON Dönüştürücü

NDJSON'a dönüştürmek için bir JSON dizisi yapıştırın, satır başına bir değer.

Nasıl hesaplanır?

Araç önce metninizin geçerli bir JSON olduğunu ve en üst düzeyinin dizi olduğunu denetler. Sonra diziyi, metin, köşeli parantez veya küme parantezi dışında kalan virgüllerden böler, belirteçler arasındaki boşlukları kaldırır ve her öğeyi kendi satırına yazar; tüm listeyi saran köşeli parantez ve satırlar arasında virgül yoktur. Her öğe özgün yazımını korur: 1.0, 1e3, çok uzun bir tam sayı ve \u00e9 gibi kaçışlar yazdığınız gibi kopyalanır, yalnızca anlamsız boşluklar atılır. Metin içindeki boşluklar korunur. Satırlar satır sonu karakteriyle birleştirilir, bu yüzden sonda boş satır olmaz. Geçersiz JSON, en üstte nesne ya da düz sayı veya metin gelmesi ya da sondaki virgül sonuç vermez. Boş dizi [] geçerlidir: çıktı boş, sayı 0 olur. Sonuçta öğe sayısı ve bir geçerlilik notu görünür.

Örnek hesaplama

İki nesneden oluşan şu diziyi yapıştırın: [{"id": 1, "name": "Ada", "tags": ["x", "y"]}, {"id": 2, "name": "Bo"}]. Araç 2 eleman bulur ve iki satır yazar. 1. satır {"id":1,"name":"Ada","tags":["x","y"]}, 2. satır {"id":2,"name":"Bo"} olur. İki noktadan ve virgülden sonraki boşluklar kaldırılır, içteki tags dizisi nesnesinin içinde aynı satırda kalır; böylece her satır tek başına ayrıştırılabilir. Geçerlilik notu olarak "Evet — geçerli JSON dizisi" görünür.

Bu örneği dene →

Sık yapılan hatalar

  • Tek bir nesne ya da {"items":[...]} gibi bir sarmalayıcı yapıştırmak. Yalnızca en üst düzeyi dizi olan metin kabul edilir; önce diziyi ayıklayın.
  • Dönüştürücünün sayıları düzenleyeceğini sanmak. Sayılar olduğu gibi kopyalanır: 1.0 yine 1.0, 1e3 yine 1e3 kalır; sayı biçimi konusunda katı bir alıcı tam olarak yapıştırdığınızı görür.
  • Dizide [1,2,] gibi sondaki virgül ya da yorum bırakmak. Katı JSON bunlara izin vermez; siz kaldırana kadar araç sonuç göstermez.
  • Yinelenen anahtarların temizleneceğini varsaymak. {"a":1,"a":2} iki anahtarıyla aynen geçer; sonraki ayrıştırıcının bunlarla ne yapacağı o ayrıştırıcıya bağlıdır.
  • Dosya sonunda son satır sonu beklemek. Çıktı, satırların satır sonlarıyla birleşimidir ve son satırdan sonra satır sonu yoktur; bazı toplu yükleme API'leri bunu ister, kendiniz ekleyin.

Bu hesaplama hakkında

NDJSON (satır sonuyla ayrılmış JSON, JSON Lines olarak da bilinir), bir JSON nesne dizisini, çevreleyen köşeli parantez veya virgül olmadan, her satırda tek başına ayrıştırılabilir kompakt bir JSON değeri olacak şekilde yeniden yazar. Her satır bağımsız olarak ayrıştırılabildiğinden, alıcı tüm dosya gelmeden işlemeye başlayabilir ve tek bir bozuk satırdan, akışın geri kalanını kaybetmeden kurtulabilir — tek bir dev JSON dizisinin yapamayacağı bir şey.

Bu yüzden NDJSON, Elasticsearch/OpenSearch bulk API'si, Fluentd ve tüm yapıyı belleğe yüklemek yerine kaydı kayıt kaydı okuyan birçok büyük veri aracı gibi akış ve günlük hatlarının beklediği biçimdir. Bu dönüştürücü standart bir JSON dizisini alır ve o sistemlere doğrudan aktarılmaya hazır, satır başına bir küçültülmüş değer olacak şekilde NDJSON olarak üretir.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar