Сериализация в XML с использованием XStream, но не получение всех полей

У меня есть класс Lookup, который имеет два свойства:

public class Lookup {

    private String surveyName;
    private String GUID;    

    public Lookup(String name, String guid){
        this.surveyName = name;
        this.GUID = guid;   
    }

}

В другом классе у меня есть список Lookup, который я пытаюсь сериализовать и сохранить в файл. Вот как я это делаю:

List<Lookup> lookup = new ArrayList<Lookup>();
lookup.add(new Lookup("foo","bar"));
XStream serializer = new XStream();
serializer.alias("Lookups",List.class);
String xml = serializer.toXML(lookup);

В итоге я получаю следующий XML:

<Lookups>
  <Lookup>
    <GUID>bar</GUID>
  </Lookup>
</Lookups>

Как видите, сериализовано только поле GUID, но не поле surveyName. Почему он игнорирует это поле?


person xbonez    schedule 26.04.2012    source источник


Ответы (2)


Вы уверены, что не изменяете переменную Lookup в другом месте. Этот код работает нормально

public class Test {
    public static void main(String[] args) {
        List<Lookup> lookup = new ArrayList<Lookup>();
        lookup.add(new Lookup("foo","bar"));
        XStream serializer = new XStream();
        serializer.alias("Lookups",List.class);
        String xml = serializer.toXML(lookup);
        System.out.println(xml);
    }
}
class Lookup {
    private String surveyName;
    private String GUID;    

    public Lookup(String name, String guid){
        this.surveyName = name;
        this.GUID = guid;   
    }
}

Выход:

<Lookups>
  <Lookup>
    <surveyName>foo</surveyName>
    <GUID>bar</GUID>
  </Lookup>
</Lookups>
person KrHubert    schedule 26.04.2012
comment
Да, мне было плохо. Код, который я разместил выше, был не совсем тем, что я запускал. Я передавал name конструктору через другую переменную, которая оказалась пустой строкой. Исправление, которое исправило вывод xml. - person xbonez; 27.04.2012

Глупый я, ошибка была полностью на моей стороне. Поле name получало пустую строку, поэтому XStream, должно быть, ее игнорировал.

person xbonez    schedule 26.04.2012