है मैं बाकी सेवा है जो एक परिणाम के रूप ExceptionEntity
धारावाहिक वर्ग रिटर्न अगर कुछ गलत हो गया बना लिया है।Gson.fromJson() - फेंक अपवाद अगर प्रकार अलग
मैं कुछ अपवाद फेंक करना चाहते हैं तो json जो Gson.fromJson()
द्वारा deserialized किया जाना चाहिए विभिन्न प्रकार में है। उदाहरण के लिए मैं इस स्ट्रिंग जो deserialized किया जाना चाहिए (my.ExceptionEntity.class) मिल गया है:
{"exceptionId":2,"message":"Room aaaa already exists."}
लेकिन मैं इस धारावाहिक स्ट्रिंग के लिए प्रकार के रूप में Room
वर्ग का उपयोग करें:
String json = "{\"exceptionId\":2,\"message\":\"Room aaaa already exists.\"}";
Room r = gson.fromJson(json, Room.class);
// as a result r==null but I want to throw Exception; how?
[संपादित करें] मैं इस परीक्षण किया है और यह काम नहीं करता:
try {
return g.fromJson(roomJson, new TypeToken<Room>(){}.getType());
// this also doesn't work
// return g.fromJson(roomJson, Room.class);
} catch (JsonSyntaxException e) {
pepuch.multiplayergame.entity.Exception ex = g.fromJson(roomJson, pepuch.multiplayergame.entity.Exception.class);
throw ExceptionController.toGameServerException(ex);
} catch (JsonParseException e) {
pepuch.multiplayergame.entity.Exception ex = g.fromJson(roomJson, pepuch.multiplayergame.entity.Exception.class);
throw ExceptionController.toGameServerException(ex);
}
के संभावित डुप्लिकेट के साथ प्रयास करना चाहिए एक कस्टम अपवाद प्रदान करना चाहते हैं (http://stackoverflow.com/questions/ [Gson गलत प्रकार पर अपवाद फेंक देना] 14,242 236/चलो-जीसन-फेंक-अपवाद-पर-गलत-प्रकार) –