2011-08-11 16 views
7

मैं इस तरह वर्ग है org.json lib साथ JSON करने के लिए वस्तु:जावा

public class Class1 { 
    private String result; 
    private String ip; 
    private ArrayList<Class2> alarm; 
} 

कहाँ अलार्म अपनी इस तरह एक वर्ग:

public class Class2 { 
    private String bla; 
    private String bla1; 
} 

वहाँ आसान तरीका करने के लिए Class1 के कहने कन्वर्ट करने के लिए है Org.json के साथ JSON ऑब्जेक्ट?

उत्तर

18

मुझे लगता है कि org.json.lib का JSONObject(Object) कन्स्ट्रक्टर का उपयोग करना आप जो खोज रहे हैं। यह आपके प्राप्तकर्ताओं के आधार पर आपके जावा ऑब्जेक्ट से JSONObject का निर्माण करेगा। इसके बाद आप वास्तविक जेसन उत्पादित करने के लिए JSONObject # toString का उपयोग कर सकते हैं।

JSONObject jsonObject = new JSONObject(instanceOfClass1); 
String myJson = jsonObject.toString(); 
+1

उनके बीन में कोई सार्वजनिक एक्सेसर विधियां नहीं हैं, इसलिए JSONObject उनके गुणों को रोक नहीं पाएगा। –

+1

यह सच है। मुझे लगता है कि यह मेरे हिस्से पर एक गरीब धारणा हो सकती है कि वे सिर्फ अल्पसंख्यक के लिए बाहर निकल गए थे। – BuffaloBuffalo

+0

ये, धन्यवाद) – Divers

4

JSONObject जाने का रास्ता है, तुम क्या अपने JavaDoc सेम गुणों के बारे में कहते हैं पालन करने की आवश्यकता:

एक वस्तु सेम ही टिककर खेल का उपयोग करने से एक JSONObject का निर्माण। यह ऑब्जेक्ट के सभी सार्वजनिक तरीकों पर को दर्शाता है। प्रत्येक पैरामीटर के साथ प्रत्येक पैरामीटर के साथ और "get" या "is" से शुरू होने वाला नाम एक अपरकेस अक्षर के बाद, विधि लागू की जाती है, और एक कुंजी और मूल्य गेटटर विधि से लौटाया जाता है JSONObject। कुंजी "प्राप्त करें" या "है" उपसर्ग को हटाकर बनाई गई है। यदि दूसरा शेष वर्ण ऊपरी मामला नहीं है, तो पहला अक्षर कम मामले में परिवर्तित किया गया है। उदाहरण के लिए, यदि किसी ऑब्जेक्ट में "getName" नामक विधि है, और यदि ऑब्जेक्ट .getName() को कॉल करने का परिणाम "लैरी ठीक" है, तो JSONObject में "नाम" होगा: "लैरी फाइन"।

प्रलेखन के आधार पर, यह आपके मामले में विफल हो जाएगा क्योंकि आप उन गुणों को गेटिंग और सेटर्स के माध्यम से बेनकाब नहीं करते हैं।