ToolHub
View All Posts

JSON Nasıl Doğrulanır: Tam Kılavuz ve Örnekler

JSON (JavaScript Object Notation), modern web API'lerinin, yapılandırma dosyalarının ve veri alışverişinin temel taşıdır. Ancak geçersiz JSON, uygulama çökmelerine, API entegrasyon hatalarına ve saatlerce hata ayıklama sıkıntısına yol açar. Bu kılavuz, temel sözdizimi kontrolünden gerçek örneklerle gelişmiş Schema doğrulamasına kadar JSON'ı doğrulamak için bilmeniz gereken her şeyi size gösterecektir.

JSON Doğrulaması Neden Önemlidir

Geçersiz JSON, web uygulamalarındaki en yaygın hata kaynaklarından biridir. Yanlış yerleştirilmiş bir virgül, tırnaksız bir anahtar veya sondaki bir virgül, JSON.parse()'ın SyntaxError fırlatmasına neden olarak tüm veri ardışık düzenini çökertebilir. Doğrulama, bu hataları sisteme yayılmadan ve alt akış arızalarına neden olmadan önce yakalar.

Sözdizimi doğruluğunun ötesinde, doğrulama JSON verilerinin beklenen yapıya uygun olmasını sağlar. Bir API geçerli JSON döndürebilir ancak zorunlu alanlar eksik, veri türleri yanlış veya değerler kabul edilebilir aralığın dışında olabilir. Schema doğrulaması bu yapısal sorunları ele alır.

JSON Sözdizimi Kuralları

Doğrulama araçlarına dalmadan önce, JSON'ı geçerli kılan kuralları anlamak çok önemlidir. JSON, RFC 8259 tarafından tanımlanan katı bir sözdizimine sahiptir ve tek bir karakter ihlali bile tüm belgeyi geçersiz kılar.

Dizeler Çift Tırnak Kullanmalıdır

Tüm dize değerleri ve nesne anahtarları çift tırnak içine alınmalıdır. Tek tırnak geçerli bir JSON dize sınırlayıcısı değildir, bu JavaScript'ten gelen geliştiricilerin yaygın bir hatasıdır.

// Invalid - single quotes
{'name': 'Alice', 'age': 30}

// Valid - double quotes
{"name": "Alice", "age": 30}

Nesne Anahtarları Tırnak İçinde Olmalıdır

JavaScript nesne literallerinden farklı olarak, JSON tüm nesne anahtarlarının çift tırnak içine alınmasını gerektirir. Tırnaksız anahtarlar sözdizimi hatasıdır.

// Invalid - unquoted keys
{name: "Alice", age: 30}

// Valid - quoted keys
{"name": "Alice", "age": 30}

Sondaki Virgüle İzin Verilmez

JSON, bir nesne veya dizinin son öğesinden sonra virgüle izin vermez. Bu, özellikle JSON'ı manuel olarak düzenlerken başka bir yaygın hatadır.

// Invalid - trailing comma
{
  "name": "Alice",
  "age": 30,
}

// Valid - no trailing comma
{
  "name": "Alice",
  "age": 30
}

Yorumlar Desteklenmez

JSON yorumları desteklemez. // tek satırlı yorumlar ve /* */ çok satırlı yorumlar JSON'da geçersizdir. Belgeleme gerekiyorsa, ayrı dosyalar veya JSONC gibi formatlar kullanın.

Yaygın JSON Doğrulama Hataları

En yaygın hataları anlamak, onları hızlıca tespit edip düzeltmenize yardımcı olur. İşte en sık karşılaşacağınız hatalar:

JavaScript'te JSON Doğrulama

JavaScript'te JSON'ı doğrulamanın en basit yolu, JSON.parse()'ı try-catch bloğuna sarmaktır. JSON geçersizse, yöntem SyntaxError fırlatır.

function validateJSON(jsonString) {
  try {
    JSON.parse(jsonString);
    return { valid: true };
  } catch (error) {
    return {
      valid: false,
      error: error.message
    };
  }
}

const result = validateJSON('{"name": "Alice"}');
console.log(result);
// { valid: true }

const badResult = validateJSON("{'name': 'Alice'}");
console.log(badResult);
// { valid: false, error: "Unexpected token '..." }

Python'da JSON Doğrulama

Python, JSON dizelerini ayrıştırmak için json.loads() içeren json modülünü sağlar. JavaScript'e benzer şekilde, geçersiz JSON ayrıntılı konum bilgisiyle json.JSONDecodeError hatasına neden olur.

import json

def validate_json(json_string):
    try:
        json.loads(json_string)
        return {"valid": True}
    except json.JSONDecodeError as e:
        return {
            "valid": False,
            "error": str(e),
            "line": e.lineno,
            "column": e.colno
        }

result = validate_json('{"name": "Alice"}')
print(result)
# {'valid': True}

JSON Schema Doğrulaması

Sözdizimi doğrulaması yalnızca JSON'ın iyi biçimlendirilmiş olup olmadığını söyler. JSON Schema, beklenen yapıyı tanımlamanıza ve verileri buna göre doğrulamanıza olanak tanır. Schema, zorunlu alanları, veri türlerini, değer aralıklarını, dize desenlerini ve iç içe nesne yapılarını belirtir.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["name", "email"],
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  }
}

Popüler JSON Schema doğrulayıcıları arasında JavaScript için Ajv, Python için jsonschema ve Java için json-schema-validator bulunur. Bu kütüphaneler, JSON verilerini Schema'nıza göre doğrular ve her ihlal için ayrıntılı hata mesajları üretir.

Çevrimiçi JSON Doğrulama Araçları

Kod yazmadan bir JSON belgesini hızlıca kontrol etmeniz gerektiğinde, çevrimiçi doğrulayıcılar en hızlı seçenektir. Hata vurgulama ve satır numaralarıyla anında geri bildirim sağlarlar.

ToolHub JSON Doğrulayıcıyı deneyin, JSON verilerinizi anında doğrulayın. Satır ve sütun numaralarıyla ayrıntılı hata mesajları, yazarken gerçek zamanlı doğrulama ve tek tıklamayla formatlama sunar.

JSON Doğrulama En İyi Uygulamaları

JSON verilerinizi doğrulamaya hazır mısınız? Anında hata tespiti ve ayrıntılı geri bildirim sunan ücretsiz çevrimiçi JSON doğrulayıcımızı deneyin.

JSON'ı Şimdi Doğrula

Sıkça Sorulan Sorular

JSON doğrulaması nedir?

JSON doğrulaması, bir JSON belgesinin doğru sözdizimi kurallarına ve isteğe bağlı olarak tanımlanmış bir Schema'ya uygun olup olmadığını kontrol etme sürecidir. Sözdizimi doğrulaması JSON'ın iyi biçimlendirilmiş olmasını sağlarken, Schema doğrulaması veri yapısının beklenen türler, zorunlu alanlar ve değer kısıtlamalarıyla eşleşmesini sağlar.

En yaygın JSON hataları nelerdir?

En yaygın JSON hataları şunlardır: son öğeden sonra sondaki virgül, çift tırnak yerine tek tırnak kullanma, tırnaksız nesne anahtarları, yorumlar (JSON'da izin verilmez) ve undefined veya NaN değerleri. Bu hatalar JSON.parse()'ın SyntaxError fırlatmasına neden olur.

JavaScript'te JSON nasıl doğrulanır?

JSON.parse()'ı try-catch bloğuna sararak kullanın. JSON geçersizse, JSON.parse() yakalayıp işleyebileceğiniz bir SyntaxError fırlatır. Schema doğrulaması için, JSON Schema doğrulamasını uygulayan Ajv gibi kütüphaneleri kullanın.

JSON Schema nedir?

JSON Schema, JSON belgelerini açıklamanıza ve doğrulamanıza olanak tanıyan bir kelime dağarcığıdır. Beklenen yapıyı, türleri, zorunlu alanları, değer aralıklarını, dize desenlerini ve iç içe nesne yapılarını tanımlar. Temel sözdizimi doğruluğunun ötesinde JSON verilerinin belirli bir formata uygun olup olmadığını doğrulamak için kullanabilirsiniz.

JSON çevrimiçi doğrulanabilir mi?

Evet, ToolHub JSON Doğrulayıcı gibi çevrimiçi JSON doğrulama araçları, JSON verilerinizi yapıştırmanıza ve hatanın tam olarak hangi satır ve sütunda oluştuğunu gösteren ayrıntılı hata mesajlarıyla hemen geçerli olup olmadığını görmenize olanak tanır.