मान लीजिए मैंXstream शून्य मान को क्रमानुसार
class Student
{
String name;
int age;
String teacher;
}
फिर
:
public class App1
{
public static void main(String[] args)
{
Student st = new Student();
st.setName("toto");
XStream xs = new XStream();
xs.alias("student",Student.class);
System.out.println(xs.toXML(st));
}
}
मुझे देता है:
<student>
<name>toto</name>
<age>0</age>
</student>
वहाँ शून्य मान निपटने के लिए एक तरीका है? मेरा मतलब है:
<student>
<name>toto</name>
<age>0</age>
<teacher></teacher>
</student>
अगर मैं
st.setTeacher("");
है, लेकिन नहीं करता है, तो शिक्षक रिक्त है यह संभव है।
मैंने कस्टम कनवर्टर के साथ प्रयास किया लेकिन ऐसा लगता है कि नल मान कनवर्टर को नहीं भेजे जाते हैं।
public class Student{
String name;
int age;
String teacher;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
.......
......//Like that mention other getter and setter method
}
अब, तुम सब इस प्रकार अपने कनवर्टर वर्ग बनाने की जरूरत:
public class StudentConverter implements Converter{
public boolean canConvert(Class clazz) {
return clazz.equals(Test.class);
}
public void marshal(Object value, HierarchicalStreamWriter writer,
MarshallingContext context) {
Student student = (Student) value;
writer.startNode("name");
writer.setValue(test.getName());
writer.endNode();
writer.startNode("age");
writer.setValue(test.getAge());
writer.endNode();
writer.startNode("teacher");
writer.setValue("");
writer.endNode();
}
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) {
Student student = new Student();
test.setName(reader.getNodeName());
test.setAge(reader.getNodeName());
test.setTeacher(reader.getNodeName());
return student;
}
}
Your main class will the like that:
public class App1{
public static void main(String args[]) {
XStream stream = new XStream(new StaxDriver());
Student st = new Student();
st.setName("ABC");
t.setAge(21);
stream.registerConverter(new StudentConverter());
stream.alias("student", Student.class);
System.out.println(stream.toXML(st));
}
}
आशा है कि यह आपकी है