Gson – začínáme s Java JSON Serializace A Deserializace

Po zveřejnění více než 50 Dovybavení blogu jsme shromáždili dostatek zpětné vazby, že hodně vývojářů by rád rozsáhlý úvod do Google Gson. Gson je velmi výkonná Knihovna pro mapování datových struktur reprezentovaných jako JSON na objekty Java. Samozřejmě také podporuje opačně a může vytvořit vhodnou reprezentaci JSON vašich objektů Java.

pokud vás zajímá, kam tato série směřuje, podívejte se na náš přehled série:

přehled řady Gson

>

Gson Dependency

Tato příručka bude praktická a začne s nějakou serializací za minutu. Protože mnoho našich čtenářů jsou vývojáři Androidu, přizpůsobíme vám to, ale Gson lze použít v jakémkoli prostředí Java. Než začneme, musíme do našeho projektu zapojit knihovnu Gson. V době psaní je nejnovější verze 2.8.5. Pokud používáte Gradle, přidejte následující řádek:

implementation 'com.google.code.gson:gson:2.8.5' 

pokud používáte Maven, můžete přidat následující závislost:

<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> <scope>compile</scope> </dependency></dependencies> 

Pro chudé lidi pomocí ani závislost management systém, můžete si stáhnout jar na oficiálních GitHub úložiště.

základy serializace Java-JSON

takže pojďme udělat nějakou serializaci! Serializace v kontextu Gson znamená mapování objektu Java na jeho reprezentaci JSON. V příštích několika tutoriály naše data bude složitější, ale teď začneme s velmi hladké UserSimple objektu:

public class UserSimple { String name; String email; int age; boolean isDeveloper;}

uživatel objekt má čtyři vlastnosti:

  • uživatele name je Řetězec, objekt
  • uživatele email je také objekt String
  • uživatele age je celé číslo, což znamená, že věk je uložena v letech (například 26 a není přesné. narozeniny!)
  • konečně booleovský příznak isDeveloper

naše aplikace pro Android nebo Java musí převést objekt UserSimple na jeho reprezentaci JSON. Za předpokladu, že udržíme jména členů stejná, očekávali bychom takový JSON pro Normana, autor tohoto blogu:

{ "name": "Norman", "email": "[email protected]", "age": 26, "isDeveloper": true}

podívejme se, jak můžeme provést konverzi pomocí Gson. Nejprve musíme vytvořit objekt Java pro Normana:

UserSimple userObject = new UserSimple( "Norman", "[email protected]", 26, true);

abychom mohli provést serializaci, potřebujeme objekt Gson, který zpracovává konverzi. Můžeme jednoduše použít konstruktor:

Gson gson = new Gson(); 

Next, musíme volání funkce toJson() a volbu UserSimple objektu:

String userJson = gson.toJson(userObject); 

userJson objekt obsahuje následující hodnotu:

{ "age": 26, "email": "[email protected]", "isDeveloper": true, "name": "Norman"}

Gson změnil pořadí vlastností (podle abecedy), ale obsah je totožný! Všimněte si, jak Gson respektoval typy. Hodnoty řetězců byly zabaleny do "", zatímco celočíselné hodnoty neměly obal. Nemuseli jsme si pohrávat s JSON objekty nebo kopírovat jednotlivé členy. Jediné volání do Gson stačilo k zmapování celého objektu. To se velmi hodí, když pracujeme se složitými datovými strukturami. Ale než půjdeme příliš hluboko, pojďme vyzkoušet opačný směr. Může Gson vytvořit objekt Java z výše uvedeného JSON?

Základy JSON-Java Deserializace

za Prvé, musíme vytvořit Řetězec, který obsahuje výše zmíněné JSON:

String userJson = "{'age':26,'email':'[email protected]','isDeveloper':true,'name':'Norman'}"; 

změnili Jsme " ', aby se zabránilo tun \" útěk. Přesto to funguje tak jako tak. Dalším krokem je, jak jste pravděpodobně uhodli, vytvořit Gson stupně:

Gson gson = new Gson(); 

Konečně, jsme na mapě z JSON Java objekt s fromJson():

UserSimple userObject = gson.fromJson(userJson, UserSimple.class); 

Všimněte si, jak jsme se projít očekává, že Java objekt jako druhý parametr. Jinak Gson neví, na co by měl zmapovat JSON. To není kouzelník!

Když jsme se připojit ladicí program a zkontrolujte výsledný userObject to nám ukáže, že Gson úspěšně namapovány všechny vlastnosti správně:

Objekt Uživatele

V tomto začínáme post jste viděli základní využití Gson. Ukázali jsme, jak snadné je mapovat Z A do JSON dat. Jsme si jisti, že máte spoustu otázek v tuto chvíli:

  • potřebují třídy Java modelu Konstruktor / getter/setter?
  • mohou být pole Java modelu soukromá?
  • jak se zpracovávají hodnoty null?
  • co když má třída Java jiné pojmenování členů než JSON?
  • Jak (de)serializovat pole/seznamy objektů
  • Jak (de)serializaci vnořené objekty
  • Gson udržet definovanou výchozí hodnota pro třídu majetku při provádění .fromJson() a není žádná hodnota pro tuto vlastnost je k dispozici v JSON?

žádné starosti, dostaneme se ke všem v nadcházejících týdnech. Pokud máte na mysli konkrétní téma, dejte nám vědět v komentářích nebo na Twitteru @futurestud_io.

Make it rock & užijte si kódování!

ještě nejste odborník? Získejte Naši Knihu Gson!

Gson Kniha

Mapování JSON Java objektů (a naopak) je z 90. let. Gson je moderní řešení pro mapování mezi JSON Java a automaticky, s minimálním úsilím.

stačí vědět jak! Naučte se každý detail o možnostech Gson, konfigurace & přizpůsobení v naší knize.

naše kniha obsahuje vše, co potřebujete vědět o Gson. Vážte si svého času a ušetříte se z nekonečných hodin vyhledávání Google, abyste rychle vyřešili své problémy. Investujte do svých znalostí předem a do čistého řešení. Uděláme z tebe experta na Gson ve vašem týmu.

obsahuje sešit!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

More: