JSON (JavaScript Object Notation)

JSON (JavaScript Object Notation), insan tarafından okunabilir ve makineler arası veri değişimine uygun hafif bir metin tabanlı veri biçimidir.

JSON (JavaScript Object Notation), insan tarafından okunabilir ve makineler arası veri değişimine uygun hafif bir metin tabanlı veri biçimidir. 2001 yılında Douglas Crockford tarafından tanımlanmış; günümüzde REST API'leri, yapılandırma dosyaları ve yapay zeka sistemleri arasında de facto veri alışveriş standardı haline gelmiştir. JSON dört temel değer tipi destekler: string, number, boolean (true/false), null. Bunların yanı sıra object ({key: value} çiftlerinden oluşur) ve array ([değerler listesi]) olmak üzere iki koleksiyonu vardır. Sözdizimi minimal ve doğrudan olduğundan tüm modern programlama dillerinde yerel destek mevcuttur. Yapay zeka ve LLM sistemlerinde JSON kritik öneme sahiptir: OpenAI, Anthropic ve diğer API sağlayıcıları sohbet turlarını, araç tanımlarını ve model yanıtlarını JSON formatında iletir. Function calling ve tool use mekanizmaları, modelin doğrudan JSON çıktısı üretmesini gerektirir. Yapılandırılmış çıktılar (Structured Outputs) özelliği, modelin JSON Schema'ya tam uyumlu çıktı vermesini zorunlu kılar. Pydantic ve Zod gibi kütüphaneler JSON'ı Python/TypeScript veri modellerine dönüştürmek için yaygın olarak kullanılır.

JSON Temel Sözdizimi

braces Object

{"ad": "Ahmet", "yas": 30, "aktif": true} — Anahtar-değer çiftleri. Anahtarlar çift tırnak içinde string olmalıdır.

data_array Array

["elma", "armut", 42, false, null] — Sıralı değerler listesi. Farklı tipler bir arada olabilir.

text_fields Primitive

string: "metin", number: 42 veya 3.14, boolean: true/false, null: değersizlik. Tüm JSON değerleri bu tiplerin kombinasyonudur.

account_tree İç içe yapı

Object içinde array, array içinde object olabilir. Derinlik sınırı yoktur; ancak aşırı iç içe yapı okunabilirliği düşürür.

smart_toy LLM ve Yapay Zekada JSON

Modern LLM API'leri JSON tabanlıdır: İstekler ("messages", "tools", "model" gibi alanlar) ve yanıtlar JSON formatındadır. Function calling / tool use: Model, hangi fonksiyonu hangi JSON argümanlarıyla çağıracağını belirler. Structured Outputs: OpenAI ve Anthropic'in sunduğu özellik; model çıktısının JSON Schema'ya tam uyumlu olmasını garanti eder. Bu, üretim ortamlarında güvenilir veri ayrıştırma sağlar ve ayrıştırma hatalarını ortadan kaldırır.

JSON ve AI Sistemlerindeki Kritik Rolü

  • check_circle LLM API İstekleri ve Yanıtları: OpenAI, Anthropic, Google API'lerinin tamamı JSON üzerinden iletişim kurar. İstek gövdesi (model, messages, temperature) ve yanıt (choices, usage) JSON nesneleridir.
  • check_circle Yapılandırılmış LLM Çıktısı: OpenAI'ın JSON modu ve Anthropic'in yapılandırılmış çıktı API'si, modeli geçerli JSON üretmeye zorlar. Bu özellik, metin ayrıştırma yerine doğrudan JSON işleme imkânı sunar.
  • check_circle Araç Tanımı (Tool/Function Definition): LLM ajanlarındaki araçlar JSON Schema ile tanımlanır. Model hangi argümanları kullanacağını öğrenirken, sistem hangi araçları çağırabileceğini JSON'dan okur.
  • check_circle Vektör Veritabanı Metadata: Pinecone, Weaviate, Chroma gibi vektör veritabanları her vektörün metadata'sını JSON olarak saklar; filtreleme ve arama bu JSON alanlara göre yapılır.
  • check_circle Model Ağırlık Yapılandırması: config.json, tokenizer_config.json gibi dosyalar Hugging Face model hub'ında modelin mimarisini, tokenizer parametrelerini ve özel ayarları tanımlar.
  • check_circle JSON-LD ve SEO: Arama motorlarının anlamasını kolaylaştıran yapılandırılmış veri formatı. FAQ, HowTo ve Article şemaları için yaygın kullanım; AI içerik indekslemesinde giderek önem kazanıyor.

JSON'un AI Uygulama Geliştirmesindeki Önemi

JSON, modern AI uygulama geliştirmesinin ortak dilidir. LLM API entegrasyonundan RAG sistemlerine, ajan araç tanımından model konfigürasyonuna kadar her katmanda JSON kullanılır. Pratik AI geliştirme açısından JSON bilmeniz gereken temel kavramlar: JSON Schema — veri yapısını doğrulamak için standart; yapılandırılmış çıktı — modeli geçerli JSON üretmeye zorlamak; JSON Lines (.jsonl) — her satırın bir JSON nesnesi olduğu büyük veri formatı (training datasets genellikle bu formatta). Güvenlik açısından dikkat: JSON.parse ile gelen veriyi güvensiz kaynaktan işlerken her zaman doğrulama yapın. Ağ aktarımı için JSON sıkıştırma (MessagePack, CBOR) büyük veri hacimleri için alternatiftir. LLM çıktısından JSON çıkarımı: modelin markdown kod bloğu içinde JSON döndürmesi yaygın; regex veya özel parser ile çıkarmak yerine JSON modu/yapılandırılmış çıktı API'si tercih edilmelidir.

quiz Sık Sorulan Sorular

  • check_circle JSON ile JSON Schema arasındaki fark nedir?: JSON bir veri biçimidir; herhangi bir yapısal kısıtlama içermez. JSON Schema ise bir JSON belgesinin yapısını, zorunlu alanları ve değer kısıtlamalarını tanımlayan ayrı bir şema dilidir.
  • check_circle LLM JSON üretirken neden hata yapıyor?: Modeller bazen yanlış tırnaklar, fazla virgül veya yorum satırları üretir. Structured Outputs veya JSON mode kullanmak bu sorunları ortadan kaldırır; çıktı ayrıştırıcı doğrulama da iyi pratiktir.
  • check_circle JSON nedir?: JavaScript Object Notation, insan tarafından okunabilir ve makineler arası veri alışverişi için kullanılan hafif metin tabanlı veri formatıdır. Tüm modern AI API'leri bu formatı kullanır.
  • check_circle LLM'den JSON çıktısı nasıl alınır?: OpenAI API'de `response_format={'type': 'json_object'}`, Anthropic'te yapılandırılmış çıktı API'si kullanılır. Alternatif olarak system prompt'ta JSON formatı zorunlu kılınabilir; ancak JSON modu daha güvenilirdir.
  • check_circle JSON Schema nedir?: JSON verilerinin yapısını, türlerini ve kısıtlamalarını tanımlayan standarttır. LLM araç tanımları (tool/function calling) ve yapılandırılmış çıktı validasyonu için kullanılır.
  • check_circle JSONL (JSON Lines) nedir?: Her satırın bağımsız bir JSON nesnesi olduğu format. LLM eğitim veri setleri, log sistemleri ve büyük veri işleme boru hatlarında yaygın. Tam JSON'dan farklı olarak satır satır akış işlemeye uygundur.