INI'den JSON'a Dönüştürücü

INI dosyaları, hâlâ Windows uygulamalarında, PHP’nin kendi php.ini dosyasında ve birçok CI çalıştırıcısında bulunan düz anahtar-değer yapılandırma formatıdır. JSON ise çoğu modern kütüphanenin beklediği formattır. Bu dönüştürücü, bir INI dosyasını inceleyerek [section] bloklarını, key = value satırlarını ve noktalı virgül yorumlarını dikkate alır ve her bölümün bir nesneye dönüştüğü, eşdeğer bir JSON çıktısı döndürür.

INI dosyasını JSON formatına nasıl dönüştürürüz?

  1. 1

    INI içeriğini yapıştırın

    Kare parantezler içindeki bölümler, altında anahtar=değer çiftleri yer almaktadır.

  2. 2

    Analiz Et

    Yorumlar (";" ve "#") ile boş satırlar elenir; "=" işareti çevresindeki boşluklar ise göz ardı edilir.

  3. 3

    JSON'a Eşle

    Her bölüm bir JSON nesnesi haline gelir; herhangi bir bölüm dışındaki üst düzey anahtarlar köke yönlendirilir.

  4. 4

    JSON'u kopyalayın

    Çıktı, 2 boşluklu girintiyle düzgün biçimde biçimlendirilir.

Örnek

Giriş:

; database config
[database]
host = db.example.com
port = 5432
user = app

[cache]
driver = redis
ttl = 3600

Çıkış:

{
  "database": {
    "host": "db.example.com",
    "port": "5432",
    "user": "app"
  },
  "cache": {
    "driver": "redis",
    "ttl": "3600"
  }
}

Dönüştürücünün ele aldığı INI özellikleri

INI Söz Dizimi Davranış
; yorumu Atılır
# yorumu Atılır (standart olmayan ancak yaygın)
Eksik bölüm Anahtarlar kök nesneye gider
Tekrarlanan anahtarlar Sonuncu kazanır
key[] dizi biçimi JSON dizisine dönüştürülür (PHP tarzında)
Tırnak içindeki değerler Tırnaklar kaldırılır; iç içerik korunur

Yapmadığı işler

  • Tip tahmini: INI katı tiplidir; 42 ile “42” aynı görünüme sahiptir. “Sayı/boole dene” adımı seçilmemişse tüm değerler JSON karakter dizisi olarak çıkarılır.
  • İç içe yerleştirilmiş bölümler: Standart INI dosyasında iç içe yerleştirilmiş bölümler bulunmaz. [database.primary] bloğu, iç içe yerleştirilmiş bir nesne yerine tek bir anahtar olarak saklanır.
  • Çoklu satır değerleri (INI’nin kendisinin izin verdiği sınırları aşan değerler).

INI hâlâ anlamlı olduğunda

Teknik bilgisi olmayan editörler için düz yapıda INI en iyi seçenektir: her satıra bir anahtar, kıvrımlı parantez kullanılmaz ve oldukça esnektir. Verilerin doğrudan işlenmesi gereken ve iç içe yerleştirilmiş yapıların önemli olduğu durumlarda ise JSON daha uygundur.

Sık Sorulan Sorular

INI katı tipli olduğundan “42” ve “kırk iki” her ikisi de geçerli değerlerdir ve dönüştürücü bu değerleri bir işaret olmadan ayırt edemez. Sayısal JSON gerekiyorsa, sonradan bir işlem adımını çalıştırın veya aracınız bunu destekliyorsa “otomatik tip tahmini”ni etkinleştirin.

INI spesifikasyonu iç içe yerleştirilmiş bölümleri içermemektedir, [a.b], adında nokta bulunan tek bir bölümdür. Bunu iç içe JSON’e dönüştürmek bir konvansiyondur, standart değildir; bu nedenle dönüştürücü bölümleri düz hâlde saklar.

Evet. Aynı bölümdeki birden fazla key[] = value satırı bir JSON dizisine dönüştürülür. Tek bir key[] ise biçimin tutarlı kalması için tek elemanlı bir dizi olarak çıkarılır.

Hayır. Analiz işlemi tarayıcıda gerçekleşir ve içerik hiçbir zaman dışarıya gönderilmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur