JSON do tablicy PHP
Wklej dokument JSON i otrzymaj literał tablicy PHP sformatowany dla pliku źródłowego .php: skrócona składnia tablic ([...]), poprawne wcięcia, poprawnie cytowane ciągi znaków, zagnieżdżone obiekty stają się tablicami asocjacyjnymi, a tablice pozostają indeksowane. Przydatne do osadzania fikstur API w testach lub do wypełniania plików konfiguracyjnych.
Jak przekształcić JSON w PHP
-
1
Wklej JSON
Dowolny prawidłowy JSON: obiekty, tablice, głęboko zagnieżdżone.
-
2
Wybierz składnię
Krótka `[...]` (PHP 5.4+) lub długa `array(...)` (obecnie rzadko potrzebna).
-
3
Wybierz rodzaj cudzysłowów dla ciągów
Pojedyncze cudzysłowy (bez interpolacji, apostrofy są ekranowane) lub podwójne cudzysłowy (umożliwiają interpolację `$`: zwykle nie jest to pożądane w przypadku danych).
-
4
Skopiuj tablicę
Wklej do pliku `.php`, przypisz do `return` lub opakuj w `config([...])`.
Przykład
Wejście:
{ "app": { "name": "Hyperion", "debug": true, "hosts": ["h1.example.com", "h2.example.com"] } }
Wynik (skrócona składnia, pojedyncze cudzysłowy):
[
'app' => [
'name' => 'Hyperion',
'debug' => true,
'hosts' => [
'h1.example.com',
'h2.example.com',
],
],
]
Mapowanie typów
| JSON | PHP |
|---|---|
| ciąg znaków | ciąg znaków (pojedyncze cudzysłowy) |
| liczba całkowita | int |
| liczba (dziesiętna) | float |
| wartość logiczna | true / false |
| null | null |
| tablica (JSON) | tablica indeksowana |
| obiekt (JSON) | tablica asocjacyjna |
Kiedy używać tablic asocjacyjnych, a kiedy indeksowanych
PHP ma jeden typ tablicy o obu zachowaniach. JSON wyraźnie rozróżnia obiekt i tablicę, więc mapowanie jest następujące:
{}→ tablica asocjacyjna (['key' => value]).[]→ tablica indeksowana ([value, value]).
Generator zawsze zachowuje to rozróżnienie; mieszanie obu w PHP jest dozwolone, ale mylące.
Pułapki charakterystyczne dla PHP
- Klucze będące ciągami liczbowymi. PHP rzutuje
"42"na całkowity klucz42w tablicy. Jeśli Twój JSON używa ciągów liczbowych jako kluczy i potrzebujesz ich jako ciągów, konwersja w obie strony przezarray_combineich nie zachowa. - Duże liczby całkowite. JSON może zawierać liczby całkowite większe niż
PHP_INT_MAXw kompilacjach 32-bitowych. Generator ostrzega, gdy może się to zdarzyć. - UTF-8. Ciągi znaków w PHP to sekwencje bajtów; generator wypisuje UTF-8 dosłownie. Upewnij się, że plik
.phpjest zapisany jako UTF-8 bez BOM.
Przykłady zastosowań
- Pliki konfiguracyjne. Zarówno Laravel, jak i Symfony korzystają z konfiguracji w postaci tablic PHP. Przeniesienie konfiguracji z JSON w stylu dostawcy sprawdza się dobrze.
- Fikstury testowe. Fikstury
PHPUnitsą czytelniejsze jako tablice niż jako pliki JSON ładowane w czasie wykonywania. - Seedery. Seedery baz danych w Laravel często zaczynają się jako zrzut JSON i stają się tablicami PHP.
Częste błędy
- Konwersja tablic PHP z powrotem do JSON.
json_encodetraktuje tablicę asocjacyjną jako obiekt, a indeksowaną jako tablicę. Jeśli je pomieszasz (['key' => 'val', 0 => 'x']), na wyjściu otrzymasz obiekt. Trzymaj tablice o kształcie JSON w kształcie JSON. - Podwójne cudzysłowy z apostrofami. Ciągi PHP w pojedynczych cudzysłowach wymagają ekranowania
\'; ciągi w podwójnych cudzysłowach wymagają ekranowania\\", a zmienne mogą zostać przypadkowo zinterpolowane, jeśli nie zachowasz ostrożności. W przypadku danych używaj pojedynczych cudzysłowów. - Zapominanie o końcowych przecinkach. PHP dopuszcza je od PHP 7.3 i sprawiają, że różnice (diff) są czytelniejsze. Generator dodaje je domyślnie.
Najczęściej zadawane pytania
Krótka składnia ([...]) jest dostępna od PHP 5.4 i stanowi idiomatyczny wybór dla całego nowoczesnego kodu. Długa składnia (array(...)) jest potrzebna tylko dla kodu, który musi działać na PHP 5.3 lub starszym, czyli w systemach przestarzałych.
Tak. Pliki konfiguracyjne Laravel to zwykłe tablice PHP zwracane z pliku. Wklej wynik generatora po return i zapisz go w katalogu config/.
Ciągi PHP w pojedynczych cudzysłowach nie interpolują zmiennych ani sekwencji ucieczki (poza \' i \\). W przypadku literałów danych jest to szybsze i bezpieczniejsze. Podwójne cudzysłowy mają znaczenie tylko wtedy, gdy chcesz umieścić w ciągu \n, \t lub $variable.
Nie, generuje literał tablicy. W razie potrzeby opakuj go samodzielnie w return, const lub właściwość klasy. Utrzymywanie małego rozmiaru wyniku ułatwia jego komponowanie.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Wygeneruj plik .editorconfig z własnymi regułami stylu i rozmiaru wcięć, końca linii, kodowania i białych znaków, aby uzyskać spójne formatowanie w różnych IDE i edytorach.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- JSON till PHP-array [SV]
- JSON vers tableau PHP [FR]
- JSON naar PHP-array [NL]
- JSON เป็น PHP Array [TH]
- JSON sang mảng PHP [VI]
- تحويل JSON إلى مصفوفة PHP [AR]
- JSON ke Array PHP [ID]
- JSON a Array de PHP [ES]
- JSONからPHP配列へ [JA]
- JSON을 PHP 배열로 변환 [KO]
- JSON zu PHP-Array [DE]
- JSON para Array PHP [PT]
- JSON в массив PHP [RU]
- JSON'dan PHP dizisine [TR]
- 从 JSON 到 PHP 数组 [ZH]
- JSON to PHP Array [EN]
- JSON in array PHP [IT]