मुझे वास्तव में XStream पसंद है
पुस्तकालय। यह काफी सरल एक्सएमएल आउटपुट का वास्तव में अच्छा काम करता है
एक प्रदान की गई जावा ऑब्जेक्ट के परिणामस्वरूप। यह पुनरुत्पादन के लिए बहुत अच्छा काम करता है
ऑब्जेक्ट को एक्सएमएल से भी वापस। और, हमारी तीसरी पार्टी पुस्तकालयों में से एक
वैसे भी पहले से ही इस पर निर्भर है।
-
हमने इसका उपयोग करना चुना क्योंकि हम चाहते थे
हमारे एक्सएमएल मानव पठनीय होने के लिए। का उपयोग करते हुए
उपनाम समारोह इसे बहुत बनाता है
अच्छे।
-
यदि आप पुस्तकालय का विस्तार कर सकते हैं
किसी वस्तु के कुछ हिस्से को चाहते हैं
एक अच्छे फैशन में deserialize। हम
यह एक मामले में फाइल तो किया था
डिग्री का एक सेट होगा,
अक्षांश के लिए मिनट, और सेकंड
और दो की बजाय, देशांतर
डबल्स।
दो मिनट का ट्यूटोरियल मूल उपयोग को सारांशित करता है, लेकिन इसमें
जानकारी को एक स्थान पर रखने का हित, मैं इसे समेटने की कोशिश करूंगा
यहाँ, बस थोड़ा छोटा।
// define your classes
public class Person {
private String firstname;
private PhoneNumber phone;
//... constructors and methods
}
public class PhoneNumber {
private int code;
private String number;
//... constructors and methods
}
फिर एक्सएमएल लिखने के लिए लाइब्रेरी का उपयोग करें।
// initial the libray
XStream xstream = new XStream();
xstream.alias("person", Person.class);//elementName, Class
xstream.alias("phone", PhoneNumber.class);
// make your objects
Person joe = new Person("Joe");
joe.setPhone(new PhoneNumber(123, "1234-456"));
// convert xml
String xml = xstream.toXML(joe);
आप आउटपुट इस तरह दिखेगा:
Joe
123
1234-456
पीछे जाना:
Person newJoe = (Person)xstream.fromXML(xml);
XMLEncoder जावा बीन serialization के लिए प्रदान किया जाता है। पिछली बार मैंने इसका इस्तेमाल किया था,
फ़ाइल काफी बुरा लग रहा था। अगर वास्तव में परवाह नहीं है कि फ़ाइल कैसा दिखता है, तो यह हो सकता है
आपके लिए काम करते हैं और आप एक तृतीय पक्ष निर्भरता से बचने के लिए मिलता है, जो भी अच्छा है। मुझे उम्मीद है कि सीरियलाइजेशन सुंदर बनाने की संभावना XMLEncoder के साथ भी एक चुनौती होगी।
यदि आप नाम का उपनाम नहीं करते हैं तो एक्सस्ट्रीम पूर्ण श्रेणी का नाम आउटपुट करता है। यदि उपरोक्त व्यक्ति वर्ग था
package example;
the
xml would have "example.Person" instead of just "person".