JSON Ayrıştırıcı
JSON (JavaScript Object Notation), web API'leri ve yapılandırma dosyaları için standart veri değişim formatıdır. Bu araç, JSON'u ayrıştırır, doğrular ve iç içe yapıları keşfetmek için etkileşimli ağaç görünümüyle güzel yazdırır. JSON'u YAML veya TOML gibi diğer formatlara dönüştürün.
Spesifikasyonlar
Yaygin Kullanim Alanlari
- Küçültülmüş API yanıtlarını hata ayıklama için biçimlendirme
- Dağıtım öncesi JSON yapılandırma dosyalarını doğrulama
- Belgelendirme için API yanıtlarını YAML'a dönüştürme
- NoSQL veritabanlarından derin iç içe veri yapılarını keşfetme
- Postman veya curl gibi API test araçları için JSON yükleri hazırlama
Ozellikler
- Net hata mesajları ve satır numaralarıyla JSON söz dizimini doğrulama
- 2 boşluk girintiyle güzel yazdırma
- Kompakt depolama veya iletim için JSON'u küçültme
- YAML, TOML veya XML formatlarına dönüştürme
- Daraltılabilir düğümlü etkileşimli ağaç görünümü
- Tek tek değerleri veya alt ağaçları kopyalama
Ornekler
API Response
Deneyin →A typical REST API response with nested objects and arrays.
{
"users": [
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
},
{
"id": 2,
"name": "Bob",
"email": "bob@example.com"
}
],
"total": 2
}Application Configuration
Deneyin →Nested configuration with database and cache settings.
{
"database": {
"host": "localhost",
"port": 5432,
"name": "myapp"
},
"cache": {
"enabled": true,
"ttl": 3600
}
}Ipuclari
- JSON anahtarları çift tırnaklı dizeler olmalıdır. Tek tırnak geçerli değildir.
- Son öğeden sonra virgül standart JSON'da izin verilmez.
- Yorumlu JSON için bunun yerine JSONC ayrıştırıcısını kullanın.
Anlama JSON Ayrıştırıcı
JSON (JavaScript Object Notation), modern web'in evrensel veri değişim formatıdır. RFC 8259 ve ECMA-404 tarafından tanımlanan JSON, yapılandırılmış verileri altı tür kullanarak temsil eder: dizeler, sayılar, mantıksal değerler, null, diziler ve nesneler. Basitliği ve neredeyse her programlama dilindeki veri yapılarına doğrudan eşlenebilmesi, onu REST API'leri, yapılandırma dosyaları, belge veritabanları ve hizmetler arası iletişim için varsayılan format haline getirmiştir.
JSON söz dizimi, JavaScript nesne değişmez gösteriminin katı bir alt kümesidir ancak önemli kısıtlamalar içerir: anahtarlar çift tırnaklı dizeler olmalıdır, sondaki virgüllere izin verilmez ve yorumlar desteklenmez. Bu kısıtlamalar, uygulamalar arasında belirsiz olmayan ayrıştırmayı sağlar. Geçerli bir JSON belgesi, kök öğe olarak bir nesne veya diziye sahip olmalıdır (RFC 8259 teknik olarak üst düzeyde herhangi bir JSON değerine izin verse de, çoğu API bir nesne veya dizi bekler).
Web geliştirmede JSON, REST ve GraphQL API'leri için standart istek ve yanıt formatıdır. Tarayıcılar yerel JSON.parse() ve JSON.stringify() yöntemleri sağlar ve fetch API'si bir .json() kolaylık yöntemi içerir. Node.js, Python (Flask, Django), Go ve diğer dillerdeki sunucu çerçevelerinin tümü yerleşik JSON serileştirmesi içerir. MongoDB, CouchDB ve DynamoDB gibi belge veritabanları verileri yerel olarak JSON veya JSON benzeri formatlarda (MongoDB için BSON) saklar.
JSON'un sınırlamaları çeşitli uzantılar ve alternatifleri doğurmuştur: JSONC yapılandırma dosyaları için yorumlar ekler, JSON5 söz dizimi kurallarını gevşetir, JSON Lines (JSONL/NDJSON) akış için satır başına bir JSON nesnesi kullanır ve JSON Schema, JSON belge yapısını doğrulamak için sözcük dağarcığı sağlar. İkili verimlilik için BSON, MessagePack ve CBOR gibi formatlar kompakt JSON uyumlu serileştirme sunar. Bu alternatiflere rağmen düz JSON, evrensel araç desteği ve insan tarafından okunabilirliği nedeniyle baskın format olmaya devam eder.
JSON kasıtlı olarak yorumları desteklemez. Formatı popülerleştiren Douglas Crockford, basit tutmak ve ayrıştırma yönergeleri için kötüye kullanılmalarını önlemek amacıyla (XML'de olduğu gibi) yorumları dışarıda bırakmıştır. Satır içi belgelendirmenin gerekli olduğu yapılandırma dosyaları için JSONC (Yorumlu JSON), VS Code, TypeScript ve ESLint gibi araçlar tarafından yerel olarak desteklenir. YAML ve TOML da yapılandırma dosyalarının yorumlardan, çok satırlı dizelerden veya net bölüm başlıklarından yararlanacağı durumlarda güçlü alternatiflerdir.
JavaScript kökenlerine rağmen JSON, JavaScript nesne değişmezleriyle aynı şey değildir. JSON katı söz dizimi kuralları uygular: tüm anahtarlar çift tırnaklı olmalıdır, yalnızca çift tırnaklı dizelere izin verilir, sondaki virgüller yasaktır ve undefined ile fonksiyonlar gibi değerler temsil edilemez. JSON.parse() bir JSON dizesini JavaScript nesnesine dönüştürürken, JSON.stringify() bir nesneyi tekrar JSON dizesine serileştirir. Tüm JavaScript nesneleri JSON üzerinden gidiş-dönüş yapamaz - fonksiyonlar, undefined, Infinity veya döngüsel referanslar içerenler serileştirme sırasında veri kaybeder veya hata fırlatır.
Birkaç megabayttan büyük JSON dosyaları için belgenin tamamını bir seferde belleğe yüklemek performans sorunlarına neden olabilir. Akış ayrıştırıcıları - JavaScript için clarinet ve oboe.js, Python için ijson gibi SAX tarzı kütüphaneler - yapının tamamını tamponlamadan belgeyi kademeli olarak işler. Her satırın ayrı bir JSON nesnesi olduğu JSON Lines (JSONL) formatı, kayıtlar tek tek işlenebildiğinden büyük veri kümeleri için idealdir. Büyük yanıtlar döndüren API'ler, bireysel yanıt boyutlarını yönetilebilir tutmak için sayfalama uygulamalıdır. JSON ile diğer formatlar arasında seçim yaparken, JSON her dil ve aracın ek bağımlılık olmadan desteklemesi nedeniyle API iletişimi ve veri değişimi için en güvenli varsayılandır. YAML, Kubernetes manifesto dosyaları ve CI/CD pipeline'ları gibi insanlar tarafından düzenlenen yapılandırmalar için öne çıkar. TOML, Cargo.toml ve pyproject.toml gibi açık bölüm başlıkları ve basit anahtar-değer çiftlerinden yararlanan uygulama yapılandırmaları için en uygunudur.