Parser JSON

Parsuj, formatuj i waliduj dane JSON z wykrywaniem błędów w czasie rzeczywistym i pięknym formatowaniem.

JSON WejściowyBrak danych JSON
Wklej swoje dane JSON w lewym edytorze i zobacz sformatowany wynik po prawej.
Sformatowany JSON
Sformatowany JSON pojawi się tutaj...
Kontrola JSON
Formatuj, waliduj i kopiuj swoje dane JSON.

Wklej dowolne dane JSON, aby automatycznie je sformatować i zwalidować

Użyj przycisku kopiowania, aby szybko skopiować sformatowany wynik

Błędy będą podświetlone z pomocnymi komunikatami

Przewodnik po formacie JSON

Kompletny przewodnik po składni JSON, najlepszych praktykach i częstych przypadkach użycia, aby pomóc Ci opanować struktury danych JSON.

Format JSON: Kompletny Przewodnik i Najlepsze Praktyki

Czym jest JSON?

JSON (JavaScript Object Notation) to lekki, tekstowy format wymiany danych, który jest łatwy do odczytu i zapisu dla ludzi. Pomimo nazwy sugerującej związek z JavaScriptem, JSON jest niezależny od języka programowania i jest używany w praktycznie wszystkich nowoczesnych językach programowania.

Składnia i Struktura JSON

Podstawowe Zasady

  1. Dane w parach nazwa/wartość: "nazwa": "wartość"
  2. Dane oddzielone przecinkami: "nazwa1": "wartość1", "nazwa2": "wartość2"
  3. Nawiasy klamrowe zawierają obiekty: { }
  4. Nawiasy kwadratowe zawierają tablice: [ ]
  5. Ciągi znaków muszą być w cudzysłowach: "tekst"

Typy Danych

JSON obsługuje sześć podstawowych typów danych:

1. Ciąg znaków (String)

{
  "imie": "Jan Kowalski",
  "miasto": "Warszawa"
}

2. Liczba (Number)

{
  "wiek": 30,
  "cena": 99.99,
  "temperatura": -5
}

3. Wartość logiczna (Boolean)

{
  "aktywny": true,
  "ukonczone": false
}

4. null

{
  "drugie_imie": null
}

5. Obiekt (Object)

{
  "adres": {
    "ulica": "ul. Marszałkowska 123",
    "miasto": "Warszawa",
    "kod_pocztowy": "00-001"
  }
}

6. Tablica (Array)

{
  "hobby": ["czytanie", "pływanie", "programowanie"],
  "punkty": [95, 87, 92, 88]
}

Popularne Zastosowania JSON

1. Odpowiedzi API

JSON to standardowy format odpowiedzi REST API:

{
  "status": "sukces",
  "dane": {
    "uzytkownicy": [
      {
        "id": 1,
        "imie": "Anna",
        "email": "anna@example.com"
      }
    ]
  },
  "wiadomosc": "Użytkownicy pobrani pomyślnie"
}

2. Pliki Konfiguracyjne

Wiele aplikacji używa JSON do konfiguracji:

{
  "baza_danych": {
    "host": "localhost",
    "port": 5432,
    "nazwa": "moja_aplikacja"
  },
  "logowanie": {
    "poziom": "info",
    "plik": "/var/log/app.log"
  }
}

3. Przechowywanie Danych

JSON jest powszechnie używany w bazach danych NoSQL jak MongoDB:

{
  "_id": "507f1f77bcf86cd799439011",
  "tytul": "Post na blogu",
  "tresc": "To jest treść...",
  "tagi": ["technologia", "programowanie"],
  "opublikowano": "2024-01-15T10:30:00Z"
}

Najlepsze Praktyki JSON

1. Używaj Znaczących Nazw

// Dobrze
{
  "imie": "Jan",
  "nazwisko": "Kowalski",
  "adres_email": "jan@example.com"
}

// Unikaj
{
  "i": "Jan",
  "n": "Kowalski",
  "e": "jan@example.com"
}

2. Bądź Konsekwentny z Konwencjami Nazewnictwa

Wybierz camelCase lub snake_case i trzymaj się tego:

// camelCase (zalecane dla JavaScript)
{
  "imie": "Jan",
  "nazwisko": "Kowalski",
  "numerTelefonu": "555-1234"
}

// snake_case (popularne w Python/Ruby)
{
  "imie": "Jan",
  "nazwisko": "Kowalski",
  "numer_telefonu": "555-1234"
}

3. Używaj Tablic dla List

{
  "produkty": [
    {
      "id": 1,
      "nazwa": "Laptop",
      "cena": 2999.99
    },
    {
      "id": 2,
      "nazwa": "Mysz",
      "cena": 89.99
    }
  ]
}

4. Dołącz Metadane

Dla API, dołącz pomocne metadane:

{
  "dane": [...],
  "paginacja": {
    "strona": 1,
    "limit": 20,
    "calkowite": 150,
    "calkowite_strony": 8
  },
  "znacznik_czasu": "2024-01-15T10:30:00Z"
}

Częste Błędy JSON i Jak je Naprawić

1. Końcowe Przecinki

// ❌ Nieprawidłowe - końcowy przecinek
{
  "imie": "Jan",
  "wiek": 30,
}

// ✅ Prawidłowe
{
  "imie": "Jan",
  "wiek": 30
}

2. Pojedyncze Cudzysłowy

// ❌ Nieprawidłowe - pojedyncze cudzysłowy
{
  'imie': 'Jan',
  'wiek': 30
}

// ✅ Prawidłowe - podwójne cudzysłowy
{
  "imie": "Jan",
  "wiek": 30
}

3. Niecytowane Klucze

// ❌ Nieprawidłowe - niecytowane klucze
{
  imie: "Jan",
  wiek: 30
}

// ✅ Prawidłowe - cytowane klucze
{
  "imie": "Jan",
  "wiek": 30
}

4. Komentarze

JSON nie obsługuje komentarzy:

// ❌ Nieprawidłowe - komentarze niedozwolone
{
  // To jest komentarz
  "imie": "Jan",
  "wiek": 30
}

// ✅ Prawidłowe - bez komentarzy
{
  "imie": "Jan",
  "wiek": 30
}

JSON vs Inne Formaty

JSON vs XML

  • JSON: Lżejszy, łatwiejszy do parsowania, natywne wsparcie JavaScript
  • XML: Bardziej rozwlekły, obsługuje atrybuty i przestrzenie nazw

JSON vs YAML

  • JSON: Bardziej restrykcyjna składnia, lepszy dla API
  • YAML: Bardziej czytelny dla ludzi, obsługuje komentarze

JSON vs CSV

  • JSON: Obsługuje zagnieżdżone struktury, mieszane typy danych
  • CSV: Płaska struktura, lepszy dla danych tabelarycznych

Zaawansowane Techniki JSON

1. JSON Schema

Zdefiniuj strukturę i reguły walidacji dla swojego JSON:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "imie": {
      "type": "string",
      "minLength": 1
    },
    "wiek": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": ["imie", "wiek"]
}

2. JSON-LD (Linked Data)

Strukturalne dane dla SEO i sieci semantycznej:

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Jan Kowalski",
  "jobTitle": "Programista",
  "url": "https://jankowalski.com"
}

Narzędzia do Pracy z JSON

  1. Walidatory Online: JSONLint, JSON Formatter
  2. Rozszerzenia Przeglądarki: JSON Viewer, JSON Formatter
  3. Linia Komend: jq (procesor JSON)
  4. Rozszerzenia IDE: Narzędzia JSON dla VS Code, IntelliJ

Względy Bezpieczeństwa

1. Wstrzykiwanie JSON

Bądź ostrożny przy parsowaniu danych użytkownika:

// ❌ Niebezpieczne
const userInput = '{"imie": "Jan", "admin": true}';
const user = JSON.parse(userInput);

// ✅ Lepiej - waliduj strukturę
const user = JSON.parse(userInput);
if (typeof user.admin !== 'undefined') {
  throw new Error('Nieprawidłowe dane użytkownika');
}

2. Duże Pliki JSON

Bądź świadomy użycia pamięci z dużymi plikami JSON:

// Dla dużych plików, rozważ parsery strumieniowe
const fs = require('fs');
const JSONStream = require('JSONStream');

fs.createReadStream('duzy-plik.json')
  .pipe(JSONStream.parse('*'))
  .on('data', function(data) {
    // Przetwarzaj każdy obiekt
  });

Wskazówki Wydajnościowe

  1. Minimalizuj rozmiar JSON: Usuń niepotrzebne białe znaki w produkcji
  2. Używaj kompresji: Włącz kompresję gzip dla JSON API
  3. Strumieniowanie: Dla dużych zbiorów danych, rozważ strumieniowanie JSON
  4. Buforowanie: Buforuj sparsowane obiekty JSON gdy to możliwe

JSON jest kluczową technologią dla nowoczesnego rozwoju webowego, zapewniając prosty lecz potężny sposób strukturyzowania i wymiany danych. Zrozumienie jego składni, najlepszych praktyk i częstych pułapek pomoże ci budować bardziej solidne i łatwe w utrzymaniu aplikacje.