2012-06-07 33 views
5

निम्नलिखित कोड को देखते हुए:सरल Gson.fromJson उदाहरण में विफल रहता है

final class retVal { int photo_id; } 
Gson gson = new Gson(); 
retVal ret = gson.fromJson("{\"photo_id\":\"383\"}", retVal.class); 

मैं null को ret सेट मिलता है।

मुझे यकीन है कि मैंने कुछ स्पष्ट रूप से याद किया है, क्योंकि toJson एक वर्ग के साथ भी विफल रहता है, हालांकि JsonObject के माध्यम से हाथ निर्माण।

उत्तर

5

विधि के बाहर अपनी कक्षा retVal घोषित करें।

+0

रवींद्र! मुझे पता था कि यह एक बेवकूफ गलती होनी चाहिए। वह काम करता है, धन्यवाद। क्या आप समझा सकते हैं * क्यों * यह काम करता है, कृपया? –

+3

जीएसओएन स्थानीय वर्गों के विलुप्त होने की अनुमति नहीं देता है। – Rajesh

1

जीसन आपको वस्तुओं को क्रमबद्ध करने में मदद करता है। तो, आपको पहले एक ऑब्जेक्ट चाहिए। अपने दृष्टिकोण के आधार पर, आप वस्तु स्ट्रिंग से वापस प्राप्त करने के लिए

RetVal myRetVal = new RetVal(); 
Gson gson = new Gson(); 
String gsonString = gson.toJson(myRetVal); 

की तरह कुछ करना चाहता हूँ:

Gson gson = new Gson(); 
RetVal myNewRetValObj = gson.fromJson(gsonString, RetVal.class); 
+0

जैसा कि मैंने इस प्रश्न में उल्लेख किया है, 'toJson' भी विफल रहता है, और स्ट्रिंग एक आरईएसटी एपीआई से आ रही है। कोड मानक 'JSONObject' वर्ग के साथ ठीक काम करता है, लेकिन मैंने सोचा कि मैं यह कैसे काम करता हूं यह देखने के लिए' जीसन 'के साथ प्रतिक्रिया करता हूं। –

+0

ठीक है, क्षमा करें, मुझे यह गलत मिला। – stpn108

संबंधित मुद्दे