Narzędzia programistyczne

Konwerter JSON ↔ YAML

Konwertuj JSON na YAML lub YAML na JSON lokalnie, z zagnieżdżonymi tablicami, tekstem i dokładnymi liczbami.

Twoje dane

Konwersja danych YAML 1.2. Komentarze i formatowanie nie są zachowywane. Limit danych: 2 MiB.

Twoje wyniki

Konwertuj JSON i YAML z zamierzonymi typami danych

Konwertuj dane zgodne z JSON między ścisłym JSON a podstawową składnią YAML 1.2. Konwerter zachowuje tokeny liczbowe JSON, w tym duże liczby całkowite, zamiast najpierw zaokrąglać je przez liczby JavaScript. Konwertuje wartości danych, a nie formatowanie dokumentu źródłowego lub schemat konfiguracji aplikacji. Komentarze YAML, kotwice i wybory prezentacji nie przetrwają konwersji do JSON.

Krok po kroku

  1. Wklej tekst lub otwórz lokalny plik JSON, YAML, YML lub TXT w UTF-8. Jawnie wybierz JSON → YAML albo YAML → JSON; otwarcie pliku nie wykrywa kierunku.
  2. Wybierz dwie lub cztery spacje i opcjonalnie posortuj klucze obiektów. Przetwórz dane i usuń błędy składni lub nieobsługiwanych funkcji. Sortowanie jest rekurencyjne i używa kolejności leksykograficznej z rozróżnianiem wielkości liter; kolejność tablic pozostaje bez zmian.
  3. Sprawdź ciągi tekstowe, wartości logiczne, null i liczby, a następnie skopiuj, wydrukuj lub pobierz converted.yaml albo converted.json. Po edycji danych lub opcji przetwórz ponownie, ponieważ stary wynik jest usuwany. Zweryfikuj przekonwertowany plik w aplikacji, która będzie go używać.

Ustawienia i ograniczenia

Typy i reguły dokumentu
Użyj jednego dokumentu YAML 1.2 z unikatowymi kluczami tekstowymi i wartościami zgodnymi z JSON. Ujmuj w cudzysłowy identyfikatory wyglądające jak liczby, np. "00123"; niecytowane YAML 00123 staje się liczbą 123. Zwykłe yes, on i tekst daty ISO pozostają ciągami tekstowymi według reguł podstawowych.
Aliasy i nieobsługiwane funkcje
Acykliczne aliasy rozwijają się w powtórzone wartości. Cykle, zduplikowane klucze, klucze inne niż tekstowe, nieobsługiwane znaczniki i liczby nieskończone lub nieokreślone są odrzucane. Klucze scalające YAML nie są stosowane: <<: *base staje się zwykłą właściwością "<<", więc najpierw rozwiń zamierzone pola dziedziczone.
Rozmiar i złożoność
Wejście jest ograniczone do 2 MiB tekstu UTF-8: 2,097,152 bajty. Wyjście jest ograniczone do 8 MiB. Przetwarzanie zatrzymuje się także powyżej 128 poziomów zagnieżdżenia, 200,000 węzłów wartości lub 100 odwiedzin aliasów; nawet mały plik może przekroczyć te limity.

Przykład z omówieniem

Pobierz types-example.json i wybierz JSON → YAML z wcięciem dwóch spacji i wyłączonym sortowaniem. Przekonwertuj i porównaj types-example.yaml. Ujęte w cudzysłowy id i word pozostają ciągami tekstowymi, enabled pozostaje false, a retries i large pozostają liczbami.

Pobierz pliki przykładowe

Przykładowe dane wejściowe

{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}

Oczekiwany wynik

"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993

Teraz otwórz types-example.yaml, jawnie przełącz na YAML → JSON i przetwórz ponownie. id nadal powinno mieć wartość "00123", a duża liczba całkowita nadal powinna wynosić 9007199254740993. Usuń cudzysłowy wokół 00123 w YAML i powtórz: jego wartość staje się liczbą 123. Ta różnica ma znaczenie dla identyfikatorów, nawet gdy oba pliki są poprawne.

Pytania i rozwiązywanie problemów

Dlaczego JSON ze zduplikowanymi kluczami jest tu odrzucany, a gdzie indziej formatowany?

Formater JSON może ostrzegać o zduplikowanych kluczach i zachowywać je. Ten konwerter je odrzuca, ponieważ konwersja do mapowania mogłaby zmienić ich znaczenie. Zdecyduj, która wartość powinna być w źródle, i usuń duplikat przed konwersją.

Czy komentarze i dziedziczenie YAML zostaną zachowane?

JSON nie ma komentarzy ani kotwic. Aliasy są rozwijane, a klucze scalające eksportowane dosłownie zamiast stosowane jako dziedziczenie. Rozwiń zamierzone dane i sprawdź wynik; konwersja nie jest wiernym przepisaniem każdej funkcji YAML.

Czy duże liczby są bezpieczne w aplikacji docelowej?

Konwerter zachowuje obsługiwany zapis liczbowy i wartości dużych liczb całkowitych, ale późniejszy program może parsować je z mniejszą precyzją. Użyj ciągu tekstowego w cudzysłowie, gdy wartość wyglądająca jak liczba jest identyfikatorem, i przetestuj parser aplikacji docelowej.