Jak używać
- Wklej konfigurację YAML do edytora wejściowego.
- W polu „Wynik” wybierz „Wcięcie 2”, „Wcięcie 4” lub „Minifikuj”.
- Jeśli YAML zawiera kilka dokumentów, ustaw „Wiele dokumentów” na „Tablica JSON”.
- W polu „Klucze liczbowe i logiczne” wybierz „Zamień na ciągi” albo „Odrzuć”.
Przykłady
Kody odpowiedzi w OpenAPI
openapi: 3.0.3
info:
title: API zamówień
version: 1.0.0
paths:
/zamowienia:
get:
responses:
200:
description: Lista zamówień
404:
description: Nie znaleziono
{"openapi":"3.0.3","info":{"title":"API zamówień","version":"1.0.0"},"paths":{"/zamowienia":{"get":{"responses":{"200":{"description":"Lista zamówień"},"404":{"description":"Nie znaleziono"}}}}}}Wspólne ustawienia usług w Compose
x-domyslne: &domyslne
restart: unless-stopped
environment:
TZ: Europe/Warsaw
services:
sklep:
<<: *domyslne
image: sklep:1.4
raporty:
<<: *domyslne
image: raporty:2.1
restart: on-failure
{
"x-domyslne": {
"restart": "unless-stopped",
"environment": {
"TZ": "Europe/Warsaw"
}
},
"services": {
"sklep": {
"restart": "unless-stopped",
"environment": {
"TZ": "Europe/Warsaw"
},
"image": "sklep:1.4"
},
"raporty": {
"environment": {
"TZ": "Europe/Warsaw"
},
"image": "raporty:2.1",
"restart": "on-failure"
}
}
}Dwa dokumenty Kubernetes
apiVersion: v1 kind: Namespace metadata: name: sklep --- apiVersion: v1 kind: ConfigMap metadata: name: ustawienia namespace: sklep data: waluta: PLN jezyk: pl
[
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "sklep"
}
},
{
"apiVersion": "v1",
"kind": "ConfigMap",
"metadata": {
"name": "ustawienia",
"namespace": "sklep"
},
"data": {
"waluta": "PLN",
"jezyk": "pl"
}
}
]Jak typy YAML zamieniają się w JSON
| YAML | JSON | Uwaga |
|---|---|---|
name: Alice, "02134" | ciąg | Liczby w cudzysłowach pozostają ciągami. |
30, 1.10, 0x1F, 12345678901234567890 | liczba | Zapisane dokładnie jak w YAML; hex i liczby ósemkowe stają się dziesiętne. |
true, False | wartość logiczna | yes, no, on pozostają ciągami (YAML 1.2). |
null, ~, pusta wartość | null | |
2001-12-14, 12:30:00 | ciąg | Bez ukrytej zamiany na znaczniki czasu. |
listy, mapy, kotwice, klucze scalające << | tablica, obiekt | Aliasy są rozwijane; kolejność kluczy jest zachowana. |
.inf, .nan, !!binary, !Ref, lista jako klucz | — | Błąd ze ścieżką i linią, nigdy cicha zmiana. |
FAQ
Czy yes, no i daty zmieniają typ podczas konwersji?
Domyślnie obowiązuje YAML 1.2: yes, no, on i off pozostają tekstem, podobnie jak daty i godziny. Wartości true i false są logiczne, a null, ~ i pusta wartość stają się null. Dyrektywa %YAML 1.1 włącza dla danego dokumentu reguły YAML 1.1, więc na przykład yes staje się true.
Czy konwerter zachowuje duże liczby bez utraty precyzji?
Konwerter zachowuje dokładny zapis liczb takich jak 12345678901234567890, 1.10, 1e3 i -0. Liczby szesnastkowe i ósemkowe zapisuje dziesiętnie, na przykład 0x1F jako 31.
Czy mój YAML jest wysyłany na serwer?
Konwersja odbywa się w Twojej przeglądarce, a kod narzędzia nie wysyła danych YAML ani JSON w żądaniach sieciowych. Strona korzysta z Google Analytics, ale zdarzenia zawierają tylko identyfikator narzędzia, bez treści YAML i JSON.
Dlaczego poprawny YAML nie daje się zamienić na JSON?
Nie każdą wartość YAML można przedstawić w JSON: konwersję zatrzymują między innymi tagi !Ref, !!timestamp i !!binary, wartości .inf i .nan oraz listy lub mapy użyte jako klucze. Narzędzie odrzuca też powtórzone klucze zamiast nadpisywać dane. Komunikat wskazuje linię i kolumnę problemu.
Jaki jest maksymalny rozmiar pliku YAML?
Limit wynosi 10 MB i dotyczy zarówno plików, jak i wklejonego tekstu. Pliki muszą być zapisane w UTF-8; pliki binarne są odrzucane. Maksymalna głębokość zagnieżdżenia to 1000, a limit po rozwinięciu aliasów wynosi 1 000 000 wartości.