Megosztás a következőn keresztül:


JSON szerializálás és deszerializálás a .NET-ben – áttekintés

A System.Text.Json névtér olyan funkciókat biztosít, amelyek lehetővé teszik a JavaScript Object Notation (JSON) szerializálását és deszerializálását, vagy más szóval a rendezési és leválasztási folyamatokat. A szerializálás egy objektum állapotának, vagyis tulajdonságainak egy tárolható vagy továbbítható formájává alakításának folyamata. A szerializált űrlap nem tartalmaz semmilyen információt az objektum társított metódusairól. A deszerializálás rekonstruál egy objektumot a szerializált űrlapból.

A System.Text.Json kódtár kialakítása nagy teljesítményt és alacsony memóriakiosztást hangsúlyoz egy átfogó funkciókészleten keresztül. A beépített UTF-8-támogatás optimalizálja az UTF-8-ként kódolt JSON-szövegek olvasásának és írásának folyamatát, amely a webes adatok és a lemezen lévő fájlok leggyakoribb kódolása.

A tár osztályokat is biztosít a memóriabeli dokumentumobjektum-modell (DOM) használatához. Ez a funkció véletlenszerű hozzáférést tesz lehetővé egy JSON-fájl vagy sztring elemeihez.

A Visual Basic esetében bizonyos korlátozások vonatkoznak a tár használható részeire. További információ: Visual Basic-támogatás.

A kódtár lekérése

A kódtár a .NET Core 3.0-s és újabb verzióihoz készült megosztott keretrendszer részeként beépített. A forrásgenerálási funkció a .NET 6-os és újabb verziók megosztott keretrendszerének részeként beépített.

A .NET Core 3.0-nál korábbi keretrendszerverziók esetén telepítse a System.Text.Json NuGet-csomagot. A csomag a következőket támogatja:

  • .NET Standard 2.0 és újabb verziók
  • .NET-keretrendszer 4.6.2 és újabb verziók
  • .NET 8 és újabb verziók

Névterek és API-k

  • A System.Text.Json névtér tartalmazza az összes belépési pontot és a fő típusokat.
  • A System.Text.Json.Serialization névtér attribútumokat és API-kat tartalmaz a speciális forgatókönyvekhez és a szerializáláshoz és deszerializáláshoz kapcsolódó testreszabáshoz.
  • A System.Net.Http.Json névtér az hálózatiJSON-hasznos adatainak szerializálására és deszerializálására szolgáló kiterjesztési metódusokat tartalmaz.

Fontos

System.Text.Json nem támogatja a korábban esetleg használt szerializálási API-kat:

Tükröződés és forrásgenerálás

Alapértelmezés szerint összegyűjti azokat a metaadatokat, System.Text.Json amelyekre szüksége van az objektumok tulajdonságainak eléréséhez a szerializáláshoz és a deszerializáláshoz futásidőbena tükröződés használatával. Alternatív megoldásként System.Text.Json használhatja a C#-forrásgenerálási funkciót a teljesítmény javítására, a magánmemória-használat csökkentésére és az szerelvény vágásának megkönnyítésére, ami csökkenti az alkalmazás méretét.

További információ: Reflexió és forrásgenerálás.

Biztonsági információk

A tervezés JsonSerializersorán figyelembe vett biztonsági fenyegetésekről és azok elhárításának módjáról a fenyegetésmodellbenSystem.Text.Json.

Menetbiztonság

A System.Text.Json szerializálót a szálbiztonság szem előtt tartásával tervezték. Ez gyakorlatilag azt jelenti, JsonSerializerOptions hogy a zárolt példányok biztonságosan megoszthatók több szál között. JsonDocument nem módosítható, a .NET 8 és újabb verzióiban pedig szálbiztos, DOM-reprezentációt biztosít a JSON-értékekhez.

További erőforrások