JSON Formatator
Brz, besplatan i siguran online formatator JSON-a.
Formatirajte vaš JSON ispod
Brzo formatirajte vaš JSON online sa trenutnim rezultatima. Uživajte u modernom, za kod prilagođenom uredniku sa brojevima linija i isticanjem sintakse. Sve operacije su brze, privatne i nikada ne napuštaju vaš pretraživač.
Šta je Formatiranje JSON-a?
Formatiranje JSON-a je proces transformacije JSON podataka u dosledan, lako čitljiv oblik dodavanjem uvlačenja, praznog prostora i preloma linija — bez menjanja njegove strukture ili sadržaja. Pravilno formatiranje čini JSON lakšim za pregled, otklanjanje grešaka, deljenje i uređivanje, uz istovremenu kompatibilnost sa mašinama i softverskim alatima.
JSON po definiciji ignoriše prazne prostore van string vrednosti. Međutim, loše formatirani (ili minifikovani) JSON — bez uvlačenja ili sabijen u jednu liniju — može biti gotovo nemoguće ljudima za čitanje ili pouzdanu izmenu.
Formatiranje naspram Minifikacije JSON-a
- Formatiranje dodaje prazne prostore, uvlačenje i prelome linija radi jasnoće i bolje čitljivosti.
- Minifikacija uklanja sve nepotrebne praznine za maksimalnu kompaktnost i efikasnost u pohrani ili prenosu.
- Snažan JSON formatator omogućava jednostavno prebacivanje između ova dva režima, olakšavajući prelaz između verzije prilagođene ljudima i optimizovane za mašine.
Primer: Minifikovani naspram Formatiranog JSON-a
Minifikovani (kompaktni) JSON:{"id":"3f4b2c","user":{"name":"Dana","is_active":true},"roles":["admin","editor"],"count":7}Formatirani (lepo prikazani) JSON:
{ "id": "3f4b2c", "user": { "name": "Dana", "is_active": true }, "roles": [ "admin", "editor" ], "count": 7 }
Zašto formatirati JSON?
- Čitljivost: Pravilno uvlačenje i prelomi linija olakšavaju pregled ugnježdenih objekata, brz pronalazak grešaka i razumevanje složenih struktura podataka na prvi pogled.
- Otklanjanje grešaka: Dijagnostikovanje nevažećih ili neočekivanih podataka mnogo je jednostavnije kada vizuelno možete pratiti ključeve, vrednosti i nivoe ugnježdenosti.
- Saradnja: Dobro formatirani JSON je lakši za pregled, diskusiju i uređivanje u pregledima koda, dokumentaciji ili zajedničkim fajlovima.
- Kontrola verzija: Git i drugi alati za verzionisanje proizvode smisaonije razlike sa formatiranim JSON-om, olakšavajući praćenje promena tokom vremena.
- Usklađenost: Mnogi stil vodiči i automatski lint alati (kao Prettier, ESLint ili jq) zahtevaju dosledno formatiranje radi jasnoće i standardizacije.
- Kompatibilnost alata: Neki API-ji, komandne linije i uređivači očekuju formatirani ulaz radi lakše ljudske interakcije ili zapisivanja.
Kako funkcioniše JSON formatator?
- Parsiranje: Formatator prvo pokušava da parsira vaš unos koristeći strogi JSON parser. Ovaj korak proverava validnost sintakse — otkrivajući probleme poput nedostajućih navodnika, zareza na kraju ili neescapeovanih karaktera.
- Lepo prikazivanje: Kad je validan, parsirani podaci se serijalizuju nazad u string sa definisanim uvlačenjem (obično 2 ili 4 prazna mesta) i prelomima linija, kreirajući "lepo prikazanu" verziju.
Ako unos nije validan JSON, formatator će prikazati grešku ili pružiti korisnu poruku sa lokacijom i opisom problema.
Opcije formatiranja
- Uvlačenje: Podesite broj razmaka po nivou (do 8).
- Sortirajte ključeve objekata abecedno
- Koristite tabove za uvlačenje umesto razmaka
- Pretvarajte ne-ASCII karaktere u Unicode
- Minifikujte izlaz (jedna linija, bez razmaka)
Česti problemi rešeni formatiranjem
- Jednolinijski/minifikovani JSON: Podaci iz API-ja ili logova često su minifikovani radi štednje širine pojasa, što otežava ručnu izmenu. Formatiranje vraća čitljivost za pregled i uređivanje.
- Nedosledno uvlačenje: JSON kopiran iz različitih izvora može imati mešavinu tabova, razmaka ili različite dubine uvlačenja. Reformatirovanje normalizuje ove razlike, poboljšavajući jasnoću i doslednost.
- Velike/ugnježdene strukture: Duboko ugnježdeni nizovi ili objekti (kao konfiguracioni fajlovi ili složeni odgovori API-ja) postaju lakši za upravljanje i navigaciju kada su formatirani, uz mogućnost skupljanja u podržanim uređivačima.
Praktična upotreba: Formatiranje API odgovora
Pri integraciji sa trećim stranama API-ja (kao AWS, Stripe ili Google Cloud), odgovori su često sabijeni radi brzine. Formatiranjem JSON izlaza olakšava se inspekcija nedostajućih polja, otklanjanje neočekivanih vrednosti i deljenje sa timom.
Primer: sirovi API odgovor{"amount":2500,"currency":"usd","status":"succeeded","charges":[{"id":"ch_1Gq","amount":2500}]}Formatirano za pregled
{ "amount": 2500, "currency": "usd", "status": "succeeded", "charges": [ { "id": "ch_1Gq", "amount": 2500 } ] }
Kako koristiti ovaj alat za formatiranje JSON-a
- Nalepite ili otpremite vaš sirovi, minifikovani ili loše formatirani JSON u polje za unos.
- Izaberite opcije formatiranja (veličinu uvlačenja, sortiranje ključeva itd.).
- Kliknite na "Formatiraj" za obradu unosa.
- Pogledajte ili kopirajte čist i čitljiv izlaz. Ako se pronađu greške, pojaviće se detaljne poruke o sintaksnim problemima koje će vam pomoći da ispravite JSON.
Sve formatiranje se izvršava sigurno u vašem pregledaču — vaši podaci nikada ne napuštaju vaš uređaj.
Primeri Koda za Formatiranje JSON-a
Pogledajte kako formatirati JSON u različitim programskim jezicima. Ovi primeri prikazuju osnovne tehnike formatiranja.
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
import json
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = json.dumps(json.loads(ugly), indent=2)
print(pretty)
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))
}
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);
}
}
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
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
$obj = json_decode($ugly);
echo json_encode($obj, JSON_PRETTY_PRINT);
require 'json'
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = JSON.pretty_generate(JSON.parse(ugly))
puts pretty
echo '{"name":"Alice","age":30,"roles":["admin","user"]}' | jq .
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);
}
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)
}
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)
}
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
SELECT jsonb_pretty('{"name":"Alice","age":30,"roles":["admin","user"]}'::jsonb);
SELECT JSON_PRETTY('{"name":"Alice","age":30,"roles":["admin","user"]}');
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
$obj = $ugly | ConvertFrom-Json
$pretty = $obj | ConvertTo-Json -Depth 10
Write-Output $pretty
use JSON;
my $ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
my $obj = decode_json($ugly);
print to_json($obj, { pretty => 1 });
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);
}
ugly = ~s({"name":"Alice","age":30,"roles":["admin","user"]})
{:ok, obj} = Jason.decode(ugly)
pretty = Jason.encode!(obj, pretty: true)
IO.puts(pretty)
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)
}