JSON Biçimlendirici

Hızlı, ücretsiz ve güvenli çevrimiçi JSON biçimlendirici.

JSON’unuzu aşağıya biçimlendirin

JSON verinizi anında çevrimiçi biçimlendirin. Satır numaraları ve sözdizimi vurgulama özellikleriyle modern, kod dostu bir düzenleyicinin keyfini çıkarın. Tüm işlemler hızlı, gizli ve verileriniz cihazınızdan dışarı çıkmaz.

JSON Biçimlendirme Nedir?

JSON biçimlendirme, JSON verilerini yapısını veya içeriğini değiştirmeden tutarlı ve insan tarafından okunabilir hale getirmek için girintiler, boşluklar ve satır sonları ekleme işlemidir. Doğru biçimlendirme, JSON’u incelemeyi, hata ayıklamayı, paylaşmayı ve düzenlemeyi kolaylaştırır, aynı zamanda makine ve yazılım uyumluluğunu korur.

JSON tanım gereği dizgi değerleri dışındaki boşlukları yok sayar. Ancak, doğru biçimlendirilmemiş (veya küçültülmüş) JSON — girintisiz veya tek satırda — insanların kolayca okuması veya güvenilir şekilde düzenlemesi neredeyse imkansızdır.

JSON Biçimlendirme ve Küçültme Arasındaki Fark

  • Biçimlendirme, açıklık ve okunabilirlik için boşluk, girinti ve satır sonları ekler.
  • Küçültme, depolama veya aktarımda maksimum sıkıştırma ve verimlilik için gereksiz tüm boşlukları kaldırır.
  • Güçlü bir JSON biçimlendirici, bu modlar arasında kolayca geçiş yapmanızı sağlar; böylece ihtiyaca göre insan dostu veya makine optimize edilmiş versiyonlar arasında geçiş yapabilirsiniz.

Örnek: Küçültülmüş vs. Biçimlendirilmiş JSON

Küçültülmüş (compact) JSON:
{"id":"3f4b2c","user":{"name":"Dana","is_active":true},"roles":["admin","editor"],"count":7}
Biçimlendirilmiş (güzel yazılmış) JSON:
{
  "id": "3f4b2c",
  "user": {
    "name": "Dana",
    "is_active": true
  },
  "roles": [
    "admin",
    "editor"
  ],
  "count": 7
}

Neden JSON Biçimlendirilir?

  • Okunabilirlik: Doğru girintiler ve satır sonları, iç içe geçmiş nesnelerin incelenmesini, hataların bulunmasını ve karmaşık veri yapılarını hızlıca anlamayı kolaylaştırır.
  • Hata Ayıklama: Geçersiz veya beklenmedik verileri anahtarlar, değerler ve iç içe yapılar üzerinden görsel olarak tarayıp izlemek çok daha basittir.
  • İş Birliği: İyi biçimlendirilmiş JSON, kod incelemelerinde, dokümantasyonda veya paylaşılan dosyalarda incelenmeyi, tartışmayı ve düzenlemeyi kolaylaştırır.
  • Versiyon Kontrolü: Git ve diğer VCS araçları, biçimlendirilmiş JSON’da daha anlamlı farklar üretir; böylece değişiklikleri takip etmek kolaylaşır.
  • Uyumluluk: Prettier, ESLint veya jq gibi otomatik denetleyiciler birçok stil rehberiyle uyum sağlamak için tutarlı biçimlendirme zorunlu kılar.
  • Araç Uyumluluğu: Bazı API’ler, CLI’lar ve editörler, insan etkileşimi veya günlük kaydı için biçimlendirilmiş girdiler bekler.

JSON Biçimlendirici Nasıl Çalışır?

  1. Ayrıştırma: Biçimlendirici önce girdinizi katı bir JSON ayrıştırıcı kullanarak parse etmeye çalışır. Bu adım, eksik tırnak işaretleri, sondaki virgüller veya kaçışsız karakterler gibi sözdizimi hatalarını yakalar.
  2. Güzel Yazma: JSON geçerli ise, ayrıştırılan veri kullanıcı tarafından seçilen girinti (genellikle 2 veya 4 boşluk) ve satır sonları ile tekrar dizgiye dönüştürülür, böylece "güzel yazılmış" bir sürüm oluşturulur.

Giriş geçerli JSON değilse, biçimlendirici bir hata verir veya sorunun konumu ve doğası hakkında yardımcı bir mesaj gösterir.

Biçimlendirme Seçenekleri

  • Girinti: Her seviye için boşluk sayısını ayarlayın (maks 8).
  • Nesne anahtarlarını alfabetik sırala
  • Girintilemede boşluk yerine tab kullan
  • ASCII dışı karakterleri Unicode olarak göster
  • Çıktıyı küçült (tek satır, boşluksuz)

Biçimlendirme ile Çözülen Yaygın Sorunlar

  • Tek satır/Küçültülmüş JSON: API’lerden veya günlük dosyalarından dönen veriler sık sık bant genişliği tasarrufu için küçültülür ve elle düzenlemeyi zorlaştırır. Biçimlendirme, gözden geçirme ve düzenleme için okunabilirliği geri kazandırır.
  • Tutarsız Girinti: Farklı kaynaklardan yapıştırılan JSON’da karışık tab, boşluk veya düzensiz girintiler olabilir. Yeniden biçimlendirme bu farkları normalize ederek netlik ve tutarlılık sağlar.
  • Büyük/İç İçe Yapılar: Derin iç içe geçmiş diziler veya nesneler (örneğin yapılandırma dosyaları veya karmaşık API yanıtları) biçimlendirme ile yönetilebilir, desteklenen editörlerde katlanabilir görünümler sunar.

Gerçek Dünya Senaryosu: API Yanıtlarını Biçimlendirme

AWS, Stripe veya Google Cloud gibi üçüncü taraf API’lerle entegrasyonda yanıtlar genellikle hız için küçültülür. JSON çıktısını biçimlendirmek, eksik alanları denetlemeyi, beklenmeyen değerleri hata ayıklamayı ve ekip arkadaşlarıyla paylaşmayı kolaylaştırır.

Örnek: Ham API Yanıtı
{"amount":2500,"currency":"usd","status":"succeeded","charges":[{"id":"ch_1Gq","amount":2500}]}
İnceleme İçin Biçimlendirilmiş
{
  "amount": 2500,
  "currency": "usd",
  "status": "succeeded",
  "charges": [
    {
      "id": "ch_1Gq",
      "amount": 2500
    }
  ]
}

Bu Araçla JSON Nasıl Biçimlendirilir?

  1. Ham, küçültülmüş veya kötü biçimlendirilmiş JSON verinizi giriş alanına yapıştırın veya yükleyin.
  2. Biçimlendirme seçeneklerini (girinti büyüklüğü, anahtar sıralaması vb.) seçin.
  3. "Biçimlendir" butonuna tıklayın.
  4. Temiz, okunabilir sonucu görüntüleyin veya kopyalayın. Hatalar bulunursa, detaylı sözdizimi mesajları JSON’u düzeltmenize yardımcı olur.

Tüm biçimlendirme işlemleri tarayıcınızda güvenli şekilde yapılır — verileriniz asla cihazınızdan çıkmaz.

JSON Biçimlendirme için Kod Örnekleri

JSON verisinin çeşitli programlama dillerinde nasıl biçimlendirileceğini görün. Bu örnekler temel biçimlendirme tekniklerini göstermektedir.

JavaScript (Node.js)
Install: Standard library
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
Python
Install: Standard library (json)
import json
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = json.dumps(json.loads(ugly), indent=2)
print(pretty)
Go
Install: Standard library (encoding/json)
package main
import (
  "encoding/json"
  "fmt"
)
func main() {
  ugly := []byte(`{"name":"Alice","age":30,"roles":["admin","user"]}`)
  var obj interface{}
  json.Unmarshal(ugly, &obj)
  pretty, _ := json.MarshalIndent(obj, "", "  ")
  fmt.Println(string(pretty))
}
Java
Install: com.fasterxml.jackson.core:jackson-databind
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
  public static void main(String[] args) throws Exception {
    String ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}";
    ObjectMapper mapper = new ObjectMapper();
    Object obj = mapper.readValue(ugly, Object.class);
    String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
    System.out.println(pretty);
  }
}
C#
Install: Newtonsoft.Json (Json.NET)
using System;
using Newtonsoft.Json;
class Program {
  static void Main() {
    var ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}";
    var parsed = JsonConvert.DeserializeObject(ugly);
    var pretty = JsonConvert.SerializeObject(parsed, Formatting.Indented);
    Console.WriteLine(pretty);
  }
}
PHP
Install: Standard library (json_decode/json_encode)
<?php
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
$obj = json_decode($ugly);
echo json_encode($obj, JSON_PRETTY_PRINT);
Ruby
Install: Standard library (json)
require 'json'
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = JSON.pretty_generate(JSON.parse(ugly))
puts pretty
Bash (Linux/macOS) with jq
Install: brew install jq (or apt-get install jq)
echo '{"name":"Alice","age":30,"roles":["admin","user"]}' | jq .
Rust
Install: cargo add serde_json
fn main() {
  let ugly = r#"{"name":"Alice","age":30,"roles":["admin","user"]}"#;
  let value: serde_json::Value = serde_json::from_str(ugly).unwrap();
  let pretty = serde_json::to_string_pretty(&value).unwrap();
  println!("{}", pretty);
}
Kotlin
Install: com.fasterxml.jackson.core:jackson-databind
import com.fasterxml.jackson.databind.ObjectMapper
fun main() {
  val ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}"
  val mapper = ObjectMapper()
  val obj = mapper.readValue(ugly, Any::class.java)
  val pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj)
  println(pretty)
}
Swift
Install: Standard library (JSONSerialization)
import Foundation
let ugly = "{\"name\":\"Alice\",\"age\":30,\"roles\":[\"admin\",\"user\"]}"
if let data = ugly.data(using: .utf8),
   let obj = try? JSONSerialization.jsonObject(with: data),
   let pretty = try? JSONSerialization.data(withJSONObject: obj, options: .prettyPrinted),
   let prettyString = String(data: pretty, encoding: .utf8) {
    print(prettyString)
}
TypeScript
Install: Standard library
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
SQL (PostgreSQL)
Install: Standard (jsonb_pretty)
SELECT jsonb_pretty('{"name":"Alice","age":30,"roles":["admin","user"]}'::jsonb);
MySQL
Install: Standard (JSON_PRETTY, 5.7+)
SELECT JSON_PRETTY('{"name":"Alice","age":30,"roles":["admin","user"]}');
PowerShell
Install: Standard
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
$obj = $ugly | ConvertFrom-Json
$pretty = $obj | ConvertTo-Json -Depth 10
Write-Output $pretty
Perl
Install: cpan JSON
use JSON;
my $ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
my $obj = decode_json($ugly);
print to_json($obj, { pretty => 1 });
Dart
Install: Standard library (dart:convert)
import 'dart:convert';
void main() {
  const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
  final obj = jsonDecode(ugly);
  final pretty = JsonEncoder.withIndent('  ').convert(obj);
  print(pretty);
}
Elixir
Install: mix deps.get jason
ugly = ~s({"name":"Alice","age":30,"roles":["admin","user"]})
{:ok, obj} = Jason.decode(ugly)
pretty = Jason.encode!(obj, pretty: true)
IO.puts(pretty)
Scala
Install: com.typesafe.play:play-json_2.13:2.9.4
import play.api.libs.json._
object Main extends App {
  val ugly = """{"name":"Alice","age":30,"roles":["admin","user"]}"""
  val jsValue = Json.parse(ugly)
  val pretty = Json.prettyPrint(jsValue)
  println(pretty)
}