डिसेरिएलाइज़ करते समय, एक Gson एक JSON ऑब्जेक्ट की अपेक्षा कर सकता है लेकिन यह एक JSON सरणी ढूंढ सकता है। चूंकि यह एक से दूसरे में परिवर्तित नहीं हो सकता है, इसलिए यह "JsonSyntaxException:java.lang.IllegalStateException:अपेक्षित BEGIN_OBJECT लेकिन BEGIN_ARRAY के रूप में त्रुटि उत्पन्न कर सकता है। "रनटाइम पर।
उदाहरण
आयात करें राजा रमेश\", \"तकनीक\":\"जावा\"}]}"; जीसन जीसन =नया जीसन (); सॉफ्टवेयर सॉफ्टवेयर =gson.fromJson (json, Software.class); System.out.println (सॉफ्टवेयर); }}वर्ग सॉफ्टवेयर { कर्मचारी कर्मचारी;}वर्ग कर्मचारी { स्ट्रिंग नाम; स्ट्रिंग तकनीक;}आउटपुट
थ्रेड में अपवाद "मुख्य" com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:अपेक्षित BEGIN_OBJECT लेकिन com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.google.java.176) पर लाइन 1 कॉलम 14 पर BEGIN_ARRAY था। .gson.internal.bind.ReflectiveTypeAdapterFactory$1.com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) पर com.google.gson.Gson पर पढ़ें (ReflectiveTypeAdapterFactory.java:93)। fromJson(Gson.java:795)com.google.gson.Gson.fromJson(Gson.java:761)com.google.gson.Gson.fromJson(Gson.java:710)पर com.google.gson.Gson पर .fromJson(Gson.java:682) पर BeginObjectError.main(BeginObjectError.java:7) इसके कारण:java.lang.IllegalStateException:अपेक्षित BEGIN_OBJECT लेकिन BEGIN_ARRAY लाइन 1 कॉलम 14at com.google.gson.stream.JsonReader.expect पर था (JsonReader.java:339)com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322) पर com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$ पर एडेप्टर.रीड (ReflectiveTypeAdapterFactory.java:165)
हमें अपने . को बदलकर इसे हल करने की आवश्यकता है POJO प्रकार से संग्रह या सरणी प्रकार। नीचे दिए गए उदाहरण में, हम एक सूची . का उपयोग कर सकते हैं हमारे POJO वर्ग में संग्रह।
उदाहरण
आयात करें "नाम\":\"राजा रमेश\", \"तकनीक\":\"जावा\"}]}"; जीसन जीसन =नया जीसन (); सॉफ्टवेयर सॉफ्टवेयर =gson.fromJson (jsonString, Software.class); System.out.println (सॉफ्टवेयर); }}वर्ग सॉफ्टवेयर {सूची<कर्मचारी> कर्मचारी; @ ओवरराइड पब्लिक स्ट्रिंग टूस्ट्रिंग () {रिटर्न "सॉफ्टवेयर [कर्मचारी =" + कर्मचारी + "]"; }}वर्ग कर्मचारी { स्ट्रिंग नाम; स्ट्रिंग तकनीक; @ ओवरराइड पब्लिक स्ट्रिंग टूस्ट्रिंग () {रिटर्न "कर्मचारी [नाम =" + नाम + ", प्रौद्योगिकी =" + प्रौद्योगिकी + "]"; }}आउटपुट
सॉफ्टवेयर [कर्मचारी=[कर्मचारी [नाम=राजा रमेश, प्रौद्योगिकी=जावा]]]