Sări la conținut
Complet local

JSON la clasa C#

Transforma un esantion JSON in clase C# gata de folosit.

Intrare
Ieșire

JSON la clasa C#

Lipeste un obiect JSON sau o matrice de obiecte JSON si acest instrument deduce forma si genereaza clasele C# corespunzatoare. A fost construit pentru sarcina obismuita de a transforma un raspuns API, un fisier de configurare sau o sarcina de testare in modele cu tipuri puternice fara a le scrie manual.

Optiunile controleaza modul in care arata codul generat. Alege atribute pentru System.Text.Json ([JsonPropertyName]), Newtonsoft.Json ([JsonProperty]) sau niciuna — atributele sunt adaugate automat ori de cate ori redenumirea PascalCase schimba un nume de proprietate, deci cheia JSON originala nu se pierde niciodata. Alege proprietati sau campuri, comuta tipurile de referinta anulabile on sau off, genereaza un record in loc de o clasa si alege List<T> sau T[] pentru matrici. Obiectele imbricate devin propriile lor clase numite dupa proprietatea care le contine, si o declaratie de spatiu de nume infarsuaza totul cand furnizezi una.

Instrumentul fuzioneza formele fiecarui element cand lipesti o matrice, deci o cheie care este prezenta doar pe unele articole devine o proprietate nula optionala in loc sa dispariti in tacere. Numerele raman numere intregi (int, extinzandu-se la long pentru valori mai mari) cu exceptia cazului in care o zecimala forteaza double, si o valoare care este intotdeauna nula devine un obiect anulabil. Numele claselor si proprietatilor sunt dezinfectate si deduplicate automat, deci cheile JSON invalide sau repetate nu produc niciodata C# spart.

Totul se executa local in browserul tau — JSON-ul tau nu este niciodata incarcat sau trimis unui server, ceea ce conteaza atunci cand esantionul provine dintr-un API privat sau contine date reale ale clientului. Copiaza clasele generate, descarca-le ca fisier .txt sau trimite rezultatul inapoi in intrare pentru a-l rafina in continuare.

FAQ

Cum decide intre int, long si double?
Numerele intregi devin int, sau long atunci cand depasesc intervalul de 32 de biti. Orice numar cu un punct zecimal sau care nu se potriveste cu un numar intreg in alt loc intr-o matrice devine double.
Ce se intampla cu o proprietate care lipseste din unele articole de matrice?
Este generata ca o proprietate anulabila. Cu tipurile de referinta anulabile pornit asta adauga o "?"; acelasi lucru se aplica unei valori care este intotdeauna nula.
Poate pastra cheia JSON originala atunci cand redenumeste o proprietate?
Da. Ori de cate ori redenumirea PascalCase sau dezinfectarea schimba un nume de proprietate, cheia originala este pastrata intr-un atribut [JsonPropertyName] sau [JsonProperty], in functie de stilul atributului pe care il alegi.
Genereaza clase imbricate pentru obiecte imbricate?
Da. Fiecare obiect imbricat isi obtine propria clasa numita dupa proprietatea care il contine, si matricile de obiecte genereaza o clasa numita dupa forma singulara a acelei proprietati.
JSON-ul meu este incarcat undeva?
Nu. Conversia se executa intrutotul in browserul tau — JSON-ul tau nu paraseste niciodata dispozitivul tau.