मुझे कुछ ऑब्जेक्ट्स के लिए JSON क्रमबद्धता को कार्यान्वित करने की आवश्यकता है, और जेनेरिक संग्रहों के साथ एकीकरण के लिए मुझे एक समस्या आई है।जावा JSON क्रमबद्धता - सर्वोत्तम अभ्यास
सभी serializable वर्गों इस इंटरफ़ेस को लागू (JSONObject this पुस्तकालय से आता है):
interface JSONSerializable{
public JSONObject dump() throws JSONException //serializes object
public void load(JSONObject obj) throws JSONException //deserializes object
}
मेरे संग्रह के लिए पर java.util.list अधिक या कम इस तरह दिखता है आधारित
कोड:
class AwesomeList<T extends JSONSerializable> implements JSONSerializable{
private LinkedList<T> items = new LinkedList<T>();
...
...
public JSONObject dump() throws JSONException {
JSONObject result = new JSONObject();
JSONArray a = new JSONArray();
for(T i : items){
a.put(i.dump());
}
result.put("items", a);
return result;
}
public void load(JSONObject obj) throws JSONException{
//here is my problem
}
}
मेरी समस्या यह है: जब मैं JSONObject से AwesomeList लोड करता हूं, तो मुझे इसके तत्व बनाना होगा, लेकिन यह असंभव है क्योंकि जावा मुझे
लिखने से मना कर देता हैमुझे इस कार्य के लिए अपना दृष्टिकोण कैसे संशोधित करना चाहिए?
ईमानदारी से कहूं तो मैं नहीं दिख रहा है कि यह कैसे भी जाना जाता है के साथ काम करता प्रकार के। क्या आप JSON डेटा पैकेट में कक्षा के नाम संग्रहीत कर रहे हैं? – Perception
नहीं, प्रत्येक ऑब्जेक्ट जानता है कि JSONObject से खुद को कैसे लोड किया जाए (यह वास्तव में केवल सहयोगी सरणी है)। मैंने यह दिखाने के लिए पोस्ट अपडेट किया कि मैं क्या करना चाहता हूं। – KCH