JSON स्ट्रिंग को जावा ऑब्जेक्ट में या उससे पार्स करते समय, डिफ़ॉल्ट रूप से Gson डिफ़ॉल्ट कंस्ट्रक्टर को कॉल करके जावा क्लास का एक उदाहरण बनाने का प्रयास करता है। . यदि जावा क्लास में डिफॉल्ट कंस्ट्रक्टर नहीं है या हम जावा ऑब्जेक्ट बनाते समय कुछ प्रारंभिक कॉन्फ़िगरेशन करना चाहते हैं, तो हमें अपना इंस्टेंस क्रिएटर बनाने और पंजीकृत करने की आवश्यकता है।
हम InstanceCreator का उपयोग करके Gson में एक कस्टम इंस्टेंस क्रिएटर बना सकते हैं इंटरफ़ेस और createInstance . को लागू करने की आवश्यकता है (प्रकार प्रकार ) विधि।
सिंटैक्स
T createInstance(टाइप टाइप)
उदाहरण
आयात करें gsonBuilder.registerTypeAdapter(Course.class, new CourseCreator()); Gson gson =gsonBuilder.create (); स्ट्रिंग jsonString ="{'कोर्स 1':'कोर जावा', 'कोर्स 2':'उन्नत जावा'}"; कोर्स कोर्स =gson.fromJson (jsonString, कोर्स.क्लास); System.out.println (पाठ्यक्रम); }}// कोर्स क्लासक्लास कोर्स { प्राइवेट स्ट्रिंग कोर्स1; निजी स्ट्रिंग कोर्स2; निजी स्ट्रिंग प्रौद्योगिकी; सार्वजनिक पाठ्यक्रम (स्ट्रिंग प्रौद्योगिकी) { यह प्रौद्योगिकी =प्रौद्योगिकी; } सार्वजनिक शून्य सेटकोर्स1(स्ट्रिंग कोर्स1) { यह.कोर्स1 =कोर्स1; } सार्वजनिक शून्य सेटकोर्स 2 (स्ट्रिंग कोर्स 2) { यह। कोर्स 2 =कोर्स 2; } सार्वजनिक स्ट्रिंग getCourse1 () {रिटर्न कोर्स1; } सार्वजनिक स्ट्रिंग getCourse2 () {रिटर्न कोर्स1; } सार्वजनिक शून्य सेटप्रौद्योगिकी (स्ट्रिंग प्रौद्योगिकी) { यह प्रौद्योगिकी =प्रौद्योगिकी; } सार्वजनिक स्ट्रिंग getTechnology() { वापसी प्रौद्योगिकी; } पब्लिक स्ट्रिंग टूस्ट्रिंग () {रिटर्न "कोर्स [" + "कोर्स 1 =" + कोर्स 1 + ", कोर्स 2 =" + कोर्स 2 + ", टेक्नोलॉजी =" + टेक्नोलॉजी + "]"; }}// कोर्स क्रिएटर क्लासक्लास कोर्स क्रिएटर इंस्टेंस क्रिएटर को लागू करता है { @ ओवरराइड पब्लिक कोर्स क्रिएट इंस्टेंस (टाइप टाइप) {कोर्स कोर्स =नया कोर्स ("जावा"); वापसी पाठ्यक्रम; }}आउटपुट
पाठ्यक्रम[पाठ्यक्रम1 =कोर जावा, पाठ्यक्रम2 =उन्नत जावा, प्रौद्योगिकी =जावा]