JSON: co to je, struktura dat a princip fungování

Autor: IT Sectr Publikováno: 2026-03-08 Doba čtení: 8 min

JSON (JavaScript Object Notation) — je lehký textový formát pro výměnu dat, založený na syntaxi objektů JavaScript. Používá se všude: od REST API a konfiguračních souborů po ukládání dat v databázích a mobilních aplikacích. Podle oficiálního webu JSON je formát nezávislý na programovacím jazyce a je podporován prakticky všemi moderními platformami. JSON se stal de facto standardem pro přenos dat mezi klientem a serverem.

Hlavní body

  • JSON — lehký textový formát pro strukturovaná data založený na syntaxi JavaScript
  • Šest datových typů — string, číslo, boolean, null, pole a objekt pro libovolné struktury
  • Univerzálnost — podporován všemi programovacími jazyky a platformami
  • REST API — hlavní formát pro výměnu dat ve webových a mobilních aplikacích
  • Čitelnost — jednoduchá syntaxe snadno čitelná a upravitelná bez nástrojů

Co je JSON?

JSON — je textový formát pro reprezentaci strukturovaných dat, založený na syntaxi JavaScript. Navzdory původu z JavaScriptu je formát zcela nezávislý na jazyce — existují parsery a serializátory pro všechny populární programovací jazyky.

Historie JSON začala na počátku 21. století, když Douglas Crockford oddělil podmnožinu syntaxe JavaScript pro výměnu dat. V roce 2013 byl formát standardizován jako ECMA-404 a později jako ISO/IEC 21778:2017. Název znamená JavaScript Object Notation.

Hlavní výhodou JSON je minimalistická syntaxe. Pro popis dat se používá pouze šest typů: string, číslo, boolean, null, pole a objekt. To stačí pro reprezentaci jakýchkoli datových struktur používaných v aplikacích.

Kde se JSON používá

  • REST API — hlavní formát pro požadavky a odpovědi mezi serverem a klientem
  • Konfigurační soubory — package.json, tsconfig.json, .prettierrc
  • Databáze — MongoDB, PostgreSQL (JSONB), Firebase Firestore
  • Mobilní aplikace — ukládání nastavení, ukládání do mezipaměti
  • Webové technologie — WebSocket, Server-Sent Events, localStorage

Syntaxe a datové typy JSON

Syntaxe JSON je velmi jednoduchá: data jsou reprezentována jako páry klíč-hodnota, kde klíč je string v uvozovkách a hodnota je jedním ze šesti základních typů. Objekty jsou uzavřeny ve složených závorkách, pole v hranatých. Stringy povinně používají dvojité uvozovky, jednoduché uvozovky nejsou povoleny.

Čísla v JSON mohou být celá nebo s plovoucí desetinnou čárkou, kladná nebo záporná, s exponenciálním zápisem. Logické hodnoty jsou reprezentovány true a false a absence hodnoty null. Pole obsahují uspořádanou množinu hodnot libovolného typu, včetně vnořených polí a objektů.

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "podpora vnořování"
  }
}
Typ Příklad Popis
String „text“ V uvozovkách, s escape sekvencemi
Číslo 42 Celé, s plovoucí čárkou, exponenciální
Boolean true true nebo false — bez uvozovek
null null Absence hodnoty
Objekt {} Neuspořádaná množina párů klíč-hodnota
Pole [] Uspořádaný seznam hodnot

JSON v REST API

JSON je hlavní formát výměny dat pro REST API v mobilním a webovém vývoji. Server posílá JSON v těle odpovědi, klient — v těle požadavku. Standardní hlavička Content-Type pro JSON je application/json.

Moderní REST API používají JSON pro přenos všech typů dat: od jednoduchých seznamů po složité vnořené struktury se vztahy mezi entitami. Klientská knihovna (např. Axios v JavaScriptu nebo Retrofit na Androidu) automaticky serializuje a deserializuje JSON, čímž zbavuje vývojáře ručního parsování.

Důležitou výhodou JSON v REST API je možnost částečného přenosu dat (partial response) pomocí parametrů požadavku, stejně jako podpora vnořených zdrojů bez dalších požadavků na server.

Parsování JSON na mobilních platformách

Parsování JSON na mobilních platformách se provádí vestavěnými nástroji. Android používá knihovny Gson od Googlu nebo Moshi od Square, iOS — protokol Codable s JSONDecoder. Každá platforma poskytuje pohodlné nástroje pro převod JSON do nativních objektů a zpět.

JSON na Androidu (Kotlin)

Na Androidu je populární přístup s Gson nebo Moshi. Stačí definovat data class s anotacemi @SerializedName a zavolat fromJson pro deserializaci. Knihovna automaticky přiřazuje názvy polí v JSON k polím třídy.

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

JSON na iOS (Swift)

Na iOS se používá vestavěný protokol Codable s JSONDecoder. Struktura dat je deklarována jako struct s protokolem Codable, poté je JSON parsován jedním řádkem. JSONEncoder provádí reverzní serializaci — převádí objekt na JSON pro odeslání na server.

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON vs XML: srovnání formátů

JSON a XML — dva hlavní formáty pro přenos strukturovaných dat. JSON vítězí v jednoduchosti a výkonu, XML v přesnosti a validaci. Volba mezi nimi závisí na požadavcích projektu: pro REST API se častěji volí JSON, pro složité dokumenty se schématy — XML.

XML vyžaduje uzavírací tagy pro každý prvek, což zvyšuje velikost dat 2-3krát ve srovnání s JSON. Zároveň XML podporuje jmenné prostory, schémata XSD, atributy a transformaci XSLT, což jej činí výkonnějším pro úkoly toku dokumentů a integrace podnikových systémů.

Vlastnost JSON XML
Syntaxe Minimalistická, klíč-hodnota Tagová, otevírací a zavírací tagy
Velikost dat Kompaktní 2-3krát větší než JSON
Datové typy Šest základních typů Pouze text, typy přes schémata
Validace Žádná vestavěná, přes JSON Schema XSD — přísná a vyspělá
Jmenné prostory Ne Plná podpora namespace
Rychlost parsování Vysoká Nižší kvůli složitosti

Příklady práce s JSON

Příklady demonstrují typické operace s JSON v mobilním vývoji: parsování API odpovědí, vytváření JSON pro odeslání a zpracování vnořených struktur. Porozumění těmto vzorům je nezbytné pro každého vývojáře mobilních aplikací.

Serializace objektu do JSON

V JavaScriptu JSON.stringify převádí objekt na JSON řetězec. Druhým argumentem lze předat pole klíčů pro selektivní serializaci nebo náhradní funkci. Třetí argument nastavuje odsazení pro formátování.

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

Parsování vnořeného JSON

V Kotlinu s knihovnou Moshi jsou vnořené JSON objekty zpracovávány prostřednictvím vnořených data class. Anotace @Json označuje název pole v JSON, pokud se liší od názvu vlastnosti třídy. Pole jsou reprezentována jako List s typem prvku.

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: validace struktury

JSON Schema — je jazyk pro popis struktury dokumentu JSON, analogický XSD pro XML. Pomocí JSON Schema lze nastavit povinná pole, datové typy, rozsahy hodnot, vzory řetězců a vnořenou strukturu. Validace podle schématu odhaluje chyby dat před jejich zpracováním v aplikaci.

JSON Schema je široce používána v OpenAPI (Swagger) pro dokumentaci REST API, ve formulářích pro validaci vstupních dat a v testování. Soubor schématu je sám o sobě JSON dokumentem, což umožňuje použití standardních JSON parserů pro jeho čtení. Existují online validátory a knihovny pro všechny populární programovací jazyky.

V mobilním vývoji se JSON Schema používá pro validaci odpovědí serveru ve fázi testování a pro kontrolu konfiguračních souborů. Knihovny jako network-validator na Androidu a json-schema-validator umožňují zabudovat validaci přímo do vývojového procesu, čímž předcházejí chybám v raných fázích.

Často kladené otázky

Jaké datové typy JSON podporuje?

JSON podporuje šest typů: string (v uvozovkách), číslo (celé a s plovoucí čárkou), boolean (true/false), null, objekt (páry klíč-hodnota v {}) a pole (seznam hodnot v []). To stačí pro libovolné datové struktury v aplikacích.

Lze v JSON používat komentáře?

Ne, standard JSON nepodporuje komentáře. Pokud potřebujete komentáře, použijte JSON5 (rozšířený JSON) nebo přidejte pole s popisem, například „_comment„: „vysvětlení„. Některé nástroje, jako VS Code, podporují komentáře v konfiguračních JSON souborech, ale toto je nestandardní rozšíření.

Čím se JSON liší od JSONB v PostgreSQL?

JSONB — je binární formát ukládání JSON v PostgreSQL. Na rozdíl od textového JSON je JSONB zpracováván rychleji, podporuje indexování (GIN indexy) a zaručuje jedinečnost klíčů. Zároveň JSONB zabírá více místa na disku kvůli přidaným metadatům.

Jak zkontrolovat platnost JSON?

Použijte JSONLint (jsonlint.com) pro rychlou kontrolu, vestavěný JSON.parse() v JavaScriptu s try-catch nebo IDE pluginy. Validace zahrnuje kontrolu správnosti uvozovek, uzavírání závorek a shody typů. Pro složitá schémata použijte JSON Schema Validator.

Jaká je maximální velikost JSON souboru?

Neexistuje žádné omezení ve specifikaci JSON. V praxi je velikost omezena pamětí zařízení a možnostmi parseru. Pro mobilní aplikace se doporučuje nepřekračovat 1-2 MB na jednu odpověď a pro velká data používat stránkování nebo streamování.

Shrnutí

  • JSON — minimalistický textový formát s šesti datovými typy pro výměnu strukturovaných informací
  • Nezávislost na jazyce — JSON parsery existují pro všechny populární programovací jazyky
  • REST API používá JSON jako standardní formát požadavků a odpovědí v mobilních aplikacích
  • Parsování se provádí vestavěnými nástroji: Gson/Moshi na Androidu, Codable na iOS
  • JSON je kompaktnější než XML 2-3krát, ale ztrácí na Protobuf ve výkonu
  • Čitelnost — syntaxe snadno čitelná a laditelná bez speciálních nástrojů
  • JSON Schema — doplňkový nástroj pro validaci struktury a datových typů

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také