Konwerter JSON ↔ YAML
Konwerter JSON ↔ YAML
Edytuj JSON i YAML obok siebie z natychmiastową dwukierunkową synchronizacją. Obsługuje dostosowanie wcięć, sortowanie kluczy i podział na wielodokumentowy YAML. Przydatne dla konfiguracji Kubernetes/Helm/CI i debugowania API.
🚀 Szybki start
- Wklej lub wpisz JSON w lewym edytorze, a YAML po prawej stronie zaktualizuje się automatycznie.
- Możesz także wpisać YAML po prawej stronie, a JSON po lewej stronie zaktualizuje się automatycznie.
- Synchronizacja jest w pełni dwukierunkowa. Nie jest potrzebny żaden przełącznik trybu: edytuj dowolną stronę, a druga strona zostanie natychmiast zaktualizowana.
- Użyj górnego paska narzędzi, aby ustawić wcięcie JSON/YAML, włączyć sortowanie według kluczy i przełączyć wyjście YAML zawierające wiele dokumentów.
- Naciśnij Tab w edytorze, aby wstawić wcięcie zamiast przesuwać fokus.
- Każdy edytor ma przyciski Kopiuj i Wyczyść w prawym górnym rogu. Wyczyszczenie którejkolwiek strony powoduje wyczyszczenie obu stron.
📌 Typowe scenariusze
- Tworzenie Kubernetes: konwertuj manifesty zasobów K8 między YAML i JSON, aby sprawdzić strukturę z dowolnego widoku.
- Debugowanie wartości Helm: przekonwertuj wartości.yaml na JSON, aby sprawdzić typy i zagnieżdżenia w swoim IDE.
- Potoki CI/CD: szybko konwertuj fragmenty między GitHub Actions (YAML) a systemami CI korzystającymi z JSON.
- Debugowanie API: konwertuj ładunki JSON na YAML, aby uzyskać wyraźniejszy widok hierarchiczny.
- Migracja konfiguracji: konwersja wsadowa plików konfiguracyjnych między YAML i JSON.
- Formatowanie i sprawdzanie poprawności: sprawdź składnię JSON/YAML poprzez synchronizację dwukierunkową, z lokalizacją błędu w wierszu/kolumnie.
🧭 Wskazówki użycia
- W większości przypadków działa wcięcie JSON z 2 spacjami; użyj 4 spacji do głębokiego zagnieżdżenia lub plików wartości Helma.
- Włącz sortowanie kluczy, aby wyświetlać klucze obiektów w kolejności alfabetycznej. Ułatwia to porównywanie różnic konfiguracji.
- Gdy katalog główny JSON jest tablicą, włącz opcję Multi-document YAML, aby podzielić każdy element na osobny dokument (---), co jest przydatne w przypadku plików K8 z wieloma zasobami.
- Jeśli dane wejściowe są nieprawidłowe, edytor wyświetla błąd ze szczegółami wiersza/kolumny; druga strona zachowuje ostatnią ważną treść.
- W przypadku dużej zawartości najpierw wklej i poczekaj na synchronizację, a następnie kontynuuj edycję, aby uniknąć nadmiernej ponownej konwersji.
⚠️ Ograniczenia i kompatybilność
- Analiza YAML jest zgodna ze specyfikacją YAML 1.2. Niektóre zachowania specyficzne dla YAML 1.1 (na przykład automatyczna konwersja wartości logicznych tak/nie) mogą się różnić.
- Numery JSON są zgodne z ograniczeniami JavaScript IEEE 754. Liczby całkowite przekraczające bezpieczną 53-bitową precyzję mogą utracić dokładność.
- Kotwice i aliasy YAML (&, *, <<) są rozwijane do konkretnych wartości po konwersji do formatu JSON; odniesienia nie mogą zostać zachowane.
- Komentarze YAML są pomijane podczas konwersji, ponieważ format JSON nie obsługuje komentarzy.
🔒 Prywatność i bezpieczeństwo
- Całe przetwarzanie odbywa się lokalnie w Twojej przeglądarce. Twoje dane nigdy nie opuszczają Twojego urządzenia.
❓ Najczęstsze pytania
Jaka jest różnica między JSON i YAML i kiedy powinienem używać każdego z nich?
JSON i YAML mogą reprezentować te same typy danych (obiekty, tablice, ciągi znaków, liczby), ale ich składnia jest inna: • JSON używa nawiasów klamrowych/nawiasów i podwójnych cudzysłowów, ma bardziej rygorystyczną składnię i nie obsługuje komentarzy. • YAML wykorzystuje wcięcia w hierarchii, jest bardziej czytelny dla człowieka i obsługuje komentarze, ale jest wrażliwy na białe znaki. Ogólna zasada: • W przypadku interfejsów API i wymiany danych między maszynami preferuj JSON. • W przypadku konfiguracji Kubernetes/Helm/CI, które często edytują ludzie, preferuj YAML. • Można konwertować między nimi bez zmiany modelu danych.
Dlaczego tak/nie/włączenie/wyłączenie w YAML staje się prawdą/fałszem po konwersji?
Wynika to ze starszego zachowania YAML 1.1, gdzie tak/nie/włączone/wyłączone/t/n może być analizowane jako wartości logiczne. To narzędzie jest zgodne z YAML 1.2, gdzie tylko prawda/fałsz są wartościami logicznymi. Jeśli potrzebujesz wartości ciągu, podaj je (na przykład „tak”).
Dlaczego komentarze YAML znikają po konwersji na JSON?
JSON (RFC 8259) nie pozwala na komentarze. Zatem komentarzy YAML nie można zachować w konwersji YAML → JSON i nie można ich zrekonstruować podczas konwersji z powrotem. Jeśli komentarze mają znaczenie, zachowaj oryginalny plik YAML.
Co oznacza --- w YAML?
--- to separator dokumentów YAML, używany do przechowywania wielu niezależnych dokumentów w jednym pliku. Jest to powszechne w Kubernetes, gdzie jeden plik może zawierać definicje wdrożenia, usługi i ConfigMap. To narzędzie odczytuje wielodokumentowy plik YAML jako tablicę JSON, a także może podzielić tablicę JSON z powrotem na --- oddzielone dokumenty YAML.
Co powinienem zrobić, jeśli po konwersji utracona zostanie precyzja numeryczna?
JavaScript używa liczb o podwójnej precyzji IEEE 754. Bezpieczne liczby całkowite mieszczą się w zakresie od -(2^53-1) do 2^53-1 (±9007199254740991). Większe liczby całkowite (na przykład identyfikatory płatków śniegu lub 64-bitowe znaczniki czasu) mogą utracić precyzję. Aby zachować dokładne wartości, przechowuj je jako ciągi znaków, na przykład „9007199254740992”.
Co dzieje się z kotwicami YAML (& i *) podczas konwersji?
Kotwice (&nazwa) i aliasy (*nazwa) to funkcje ponownego wykorzystania specyficzne dla YAML. JSON nie ma równoważnego mechanizmu referencyjnego, dlatego podczas konwersji aliasy są rozwijane do pełnych kopii. Jest to transformacja stratna i oryginalna struktura kotwicy nie może zostać przywrócona automatycznie.