Not able to deserialize an object with with List using Gson api -


एक वस्तु deserializing जबकि निम्न अपवाद हो रही है:

  com.google.gson.JsonParseException : [{ "id": "3680231", "longTitle" JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@1e2befa json वस्तु { "com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct" deserialized में विफल: "Graco SnugRide शिशु कार सीट - पीपीन", "उपलब्ध": "सच"}]} प्रकार दिया com.google.gson.ParameterizedTypeImpl@b565dd  

यहां वर्ग कि मैं कर रहा हूँ है Deserialize करने की कोशिश कर रहा:

<पूर्व> सार्वजनिक वर्ग TrusRegWishAddItemEvent लागू करता है Serializable {स्थिर अंतिम लंबे serialVersionUID = 1L; निजी अंतिम सूची & lt; AnalyticsProduct & gt; आइटम; निजी TrusRegWishAddItemEvent () {items = null; } सार्वजनिक TrusRegWishAddItemEvent (सूची & lt; AnalyticsProduct & gt; आइटम) {this.items = items; } सार्वजनिक सूची & lt; AnalyticsProduct & gt; GetItems () {वापसी आइटम; }} पब्लिक क्लास एनालिटिक्स उत्पाद सीरियलज़ेबल {स्टैटिक फाइनल लार्ज सीरियल वीर्सियन यूआईडी = 1 एल; निजी फाइनल लांग आईडी; प्राइवेट फाइनल स्ट्रिंग लोंगटेथल; निजी फाइनल बुलियन उपलब्ध; सार्वजनिक विश्लेषिकी उत्पाद () {आईडी = 0; LongTitle = नल; उपलब्ध = गलत; } सार्वजनिक विश्लेषिकी उत्पाद (लंबी आईडी, स्ट्रिंग लँगटिटल, बुलियन उपलब्ध) {this.id = id; This.longTitle = longTitle; यह उपलब्ध है। उपलब्ध =; } सार्वजनिक लंबे आईआईडी () {वापसी आईडी; } सार्वजनिक स्ट्रिंग getLongTitle () {लौटें longTitle; } सार्वजनिक बूलियन उपलब्ध है () {उपलब्ध रिटर्न; }}

कृपया गाइड।

अगर JSON < / p>

 <कोड> { "आइटम": [{ "id": "3680231", "longTitle": "Graco SnugRide शिशु कार सीट - पीपीन", "उपलब्ध": "सच"}]}  

उसके बाद निम्न उदाहरण Gson को आसानी से deserialize / क्रमानुसार करने / मूल प्रश्न में एक ही जावा डेटा संरचना से।

  public static void (String [का उपयोग करता है ] Args) अपवाद फेंकता {जीएसन जीएसएन = नया जीएसन (); TrusRegWishAddItemEvent बात = gson.fromJson (नई FileReader ( "input.json"), TrusRegWishAddItemEvent.class); Println (gson.toJson (बात)); }  

यदि इसके बजाय JSON होना चाहिए

  {"com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct": [{"id" : "3680231", "लँगटिटल": "ग्रेको स्नुगराइड शिशु कार सीट - पोपीन", "उपलब्ध": "सच"}]}  

फिर JSON तत्व नाम का अनुवाद करना आवश्यक है < कोड> "com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct" जावा सदस्य के लिए <कोड> आइटम । ऐसा करने के लिए, जीएसएन कुछ तंत्र प्रदान करता है, जिनमें से सबसे सरल कोड attribute trusRegWishAddItemEvent के रूप में निम्नानुसार है।

  वर्ग TrusRegWishAddItemEvent कार्यान्वित करता है Serializable {स्थिर अंतिम लंबे serialVersionUID = 1 एल; @ सेरीलाइज्डनाम ("com.gsicommerce.analytics.platform.model.webstore.AnalyticsProduct") निजी अंतिम सूची & lt; AnalyticsProduct & gt; आइटम; ...}  

लेकिन इस बिना @ SerializedName एनोटेशन deserialize करने का प्रयास करते समय जीएसएन एक अपवाद नहीं डालता है, इसके बदले यह सिर्फ एक TrusRegWishAddItemEvent < / कोड> उदाहरण के साथ आइटम एक रिक्त संदर्भ के रूप में इसलिए, यह स्पष्ट नहीं है कि मूल प्रश्न में त्रुटि संदेश उत्पन्न करने के लिए क्या किया गया था।


Comments