Wejście JSON

Wyjście C++

Czym jest JSON do C++?

C++ nie ma wbudowanej obsługi JSON. Biblioteki takie jak nlohmann/json lub RapidJSON obsługują parsowanie. To narzędzie generuje struktury i klasy C++ z Twojego JSON, aby mapować dane na typowane struktury. Specyfikacja JSON definiuje format wejściowy.

Konwersja działa w Twojej przeglądarce. Ustaw nazwę struktury i opcjonalnie przestrzeń nazw w panelu konfiguracji. Nic nie jest wysyłane na serwer. Wygenerowane typy działają z C++11 i nowszymi. Dla czystego C użyj JSON do C.

Jak używać tego narzędzia

1

Wklej lub wczytaj JSON

Wklej swój JSON lub wczytaj plik. Ustaw nazwę struktury i opcjonalnie przestrzeń nazw w panelu konfiguracji. Nieprawidłowy JSON pokaże błąd. Użyj Walidatora JSON, aby najpierw sprawdzić składnię.

2

Sprawdź wyjście C++

Prawy panel pokazuje wygenerowane struktury C++. Dodaj dyrektywy include dla nlohmann/json lub RapidJSON i logikę parsowania według potrzeb. Tablice stają się std::vector lub podobnymi kontenerami.

3

Kopiuj lub pobierz

Użyj Kopiuj lub Pobierz. Aby najpierw sformatować JSON, użyj Formatera JSON. Do walidacji użyj Walidatora JSON.

Przykłady JSON do C++

Oto przykład generowania struktur C++ z obiektu JSON.

Przykład: Rekord subskrybenta

Wejście JSON:

Wejście

Wygenerowane wyjście C++:

Wyjście

Kiedy JSON do C++ jest pomocny

Podczas budowania aplikacji C++, silników gier lub systemów wbudowanych, które korzystają z REST API lub plików konfiguracyjnych, potrzebujesz typowanych struktur dla JSON. Wklejenie przykładu tutaj daje struktury i klasy C++ do użycia z nlohmann/json lub RapidJSON. Ręczne pisanie typów dla złożonego zagnieżdżonego JSON jest żmudne; to narzędzie wywnioskuje strukturę z Twojego przykładu. Aby najpierw wyodrębnić konkretne wartości, użyj jq.

Często zadawane pytania

Której biblioteki JSON powinienem używać?

nlohmann/json jest tylko-nagłówkowa i łatwa do integracji. RapidJSON jest szybsza dla dużych danych. Obie są szeroko stosowane. nlohmann/json ma prostsze API; RapidJSON jest lepsza do parsowania krytycznego wydajnościowo.

Czy obsługuje zagnieżdżone obiekty?

Tak. Zagnieżdżone obiekty JSON stają się zagnieżdżonymi strukturami. Tablice stają się std::vector lub podobnymi kontenerami. Generator obsługuje dowolną głębokość zagnieżdżenia.

Czy moje dane są prywatne?

Tak. Generowanie odbywa się w całości w przeglądarce. Żaden JSON ani kod nie jest wysyłany na żaden serwer.

C++11 czy C++17?

Wygenerowany kod używa standardowych funkcji C++. std::vector i std::string działają z C++11. nlohmann/json obsługuje C++11 i nowsze. Dla optional użyj std::optional (C++17) lub biblioteki.

Czy mogę używać z Qt lub Unreal?

Tak. Wygenerowane struktury to czysty C++. Qt ma QJsonDocument; Unreal ma własną obsługę JSON. Możesz dostosować wygenerowane typy lub używać ich tak jak są z nlohmann/json.

Powiązane narzędzia

nlohmann/json. RapidJSON. Specyfikacja JSON. MDN JSON. cppreference.