जब एक json को एक उदाहरण के लिए: मैं जानता हूँ कि मैं कर सकता है, तो (foo.attr == नल) foo.attr = ... div> आप अपने कस्टम deserializer बनाना होगा। यह मानते हुए अपने वर्ग कहा जाता है और GSON से पंजीकृत करें, इस तरह: अब, आप सिर्फ एक class Foo {int id; सूची के & lt; स्ट्रिंग & gt; आइटम; सूची के & lt; लांग & gt; तिथियों;} मैं deserialization के बाद रिक्त फ़ील्ड कैसे स्वत: प्रारंभ कर सकता हूं ? वहाँ Gson lib साथ इस तरह के एक possiblity है
फू foo = नए Gson () fromJson ( "{\" id \। ": \" परीक्षण \ ", \" आइटम \ ": [1234, 1235, 1336]}", Foo.class) foo.dates.size (); - & gt; 0 और नहीं अशक्त pointerException
लेकिन मैं अधिक सामान्य कोड के लिए देख रहा हूँ, MyAwesomeClass , आप कुछ की तरह कार्यान्वित
MyAwesomeClassDeserializer लागू करता है JsonDeserializer & lt; MyAwesomeClass & gt; {@Override सार्वजनिक MyAwesomeClass deserialize (JsonElement json, प्रकार typeOfT, JsonDeserializationContext ctx) फेंकता JsonParseException {// TODO: यहाँ अपने अशक्त-जादू करते हैं}
gson gson = नए GsonBuilder () .registerTypeAdapter (MyAwesomeClass.class, नई MyAwesomeClassDeserializer ()) .create ();
fromJson (स्ट्रिंग, TypeToken) विधि, अपने deserialized वस्तु प्राप्त करने के लिए।
MyAweSomeClass उदाहरण फोन = जीएसएन.फ्रेम जेसन (जेएसन, नए टाइपटोकन & lt; MyAwesomeClass & gt; () {}। GetType ());
Comments
Post a Comment