Przejdź do treści

Konwerter JSON na struktury Go — Numio

Generuje definicje struktur Go z JSON przy użyciu portu json-to-go, sformatowanego za pomocą gofmt. Klucze stają się eksportowanymi polami CamelCase ze znacznikami json:"..."; zagnieżdżone obiekty stają się wbudowanymi anonimowymi strukturami, a wartość null staje się dowolną.

Zapisywanie struktury do json.Unmarshal odpowiedzi REST API innej firmy.

Kiedy go używać

  • Zapisywanie struktury do json.Unmarshal odpowiedzi REST API innej firmy.
  • Ładowanie typów żądań i odpowiedzi dla modułu obsługi Go HTTP na podstawie przykładowych ładunków.

Jak używać

  1. Wklej obiekt lub tablicę JSON do lewego edytora.
  2. Przeczytaj wygenerowaną strukturę; typ root ma zawsze nazwę AutoGenerated.
  3. Skopiuj go do swojego pakietu, zmień nazwę typu i wyodrębnij wbudowane struktury do nazwanych typów, jeśli ich ponownie użyjesz.

JSON

{
  "id": 42,
  "user_name": "ada",
  "score": 9.5,
  "active": true,
  "deleted_at": null,
  "tags": ["go", "json"],
  "address": { "city": "Tokyo", "zip": "100-0001" }
}

Przejdź do struktury

type AutoGenerated struct {
	ID        int      `json:"id"`
	UserName  string   `json:"user_name"`
	Score     float64  `json:"score"`
	Active    bool     `json:"active"`
	DeletedAt any      `json:"deleted_at"`
	Tags      []string `json:"tags"`
	Address   struct {
		City string `json:"city"`
		Zip  string `json:"zip"`
	} `json:"address"`
}

Szczegóły i ograniczenia

Generacja działa w przeglądarce. Nie ma ustawień dla nazwy typu, struktur wbudowanych i nazwanych ani tagów.

Inicjalizmy są pisane wielką literą (id staje się ID), a snake_case staje się CamelCase, przy czym oryginalny klucz jest przechowywany w tagu json.

Liczby całkowite stają się int (int64, gdy są duże), miejsca dziesiętne float64. null, puste tablice i tablice mieszane stają się dowolnymi lub []any.

Gdy obiekty w tablicy różnią się, niektórym brakuje kluczy.

FAQ

Czy mogę przekonwertować tablicę JSON w katalogu głównym?

Tak. Tworzy typ AutoGenerated []struct{...}, łączący pola wszystkich obiektów w tablicy.

Dlaczego pole null otrzymuje typ any?

Wartość null nie zawiera informacji o typie. Zastąp dowolny wskaźnikiem, takim jak *string lub *time.Time, aby zachować obsługę zera.

Czy generuje nazwane struktury zagnieżdżone?

Nie. Obiekty zagnieżdżone są wbudowanymi anonimowymi strukturami. Przenieś je ręcznie do nazwanych typów, jeśli chcesz się do nich odwołać.

Specyfikacje i referencje