2010-12-15 9 views
24

के भीतर घोंसला पार्सिंग मुझे एक एपीआई के साथ बातचीत करना है, और प्रतिक्रिया प्रारूप (जो मैंने पढ़ा है) से खराब रूप से संरचित प्रतीत होता है। मुझे एक Google समूह कुछ हद तक समान समस्या here का जवाब मिला है, लेकिन मुझे Gson.fromJson को संभालने के लिए एक प्रतिक्रिया वर्ग को कार्यान्वित करने में समस्या हो रही है। क्या कोई ऐसा उदाहरण है जो मुझे याद आ रहा है कि वहां है?जावा - जीएसन पार्सिंग नेस्टेड

{ 

"response":{ 
    "reference": 1023, 
    "data":{ 
     "user":{ 
      "id":"210", 
      "firstName":"john", 
      "lastName":"smith", 
      "email":"[email protected]", 
      "phone":"", 
      "linkedid":{ 
       "id":"238" 
      } 
     } 
    } 
} 

} 

उत्तर

44

JSON वस्तुओं {} एक Map<String, Object> या एक JavaBean वर्ग का प्रतिनिधित्व करती जा सकता है। यहां एक उदाहरण दिया गया है जो जवाबीन का उपयोग करता है। यह के रूप में

public class ResponseData { 
    private Response response; 
    // +getter+setter 

    public static class Response { 
     private int reference; 
     private Data data; 
     // +getters+setters 
    } 

    public static class Data { 
     private User user; 
     // +getter+setter 
    } 

    public static class User { 
     private String id; 
     private String firstName; 
     private String lastName; 
     private String email; 
     private String phone; 
     private Linkedid linkedid; 
     // +getters+setters 
    } 

    public static class Linkedid { 
     private String id; 
     // +getter+setter 
    } 
} 

उपयोग इस प्रकार है:

ResponseData responseData = new Gson().fromJson(json, ResponseData.class); 
+0

क्यों GSON भीतरी वर्ग की आवश्यकता है? – Chetan

+1

@ खेतान: यह एक जीएसओएन आवश्यकता नहीं है। – BalusC

+2

जब मैं इन्हें प्रिंट करने का प्रयास करता हूं तो मुझे एक शून्य सूचक अपवाद मिलता है। –