एक वस्तु 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
Post a Comment