wiem, że to jest stare pytanie, ale wyślę moje rozwiązanie po całym rano googling. Odpowiedź polega na zapewnieniu atrapowego węzła głównego (znaczników początkowych i końcowych). W celu osiągnięcia tego, jeden z twoich najlepszych przyjaciół jest SequenceInputStream:
Mój kod jest następujący:
reader = new XppDriver().createReader(new SequenceInputStream(
Collections.enumeration(Arrays.asList(
new InputStream[] {
new ByteArrayInputStream("<PlatformAuditEvents>".getBytes()),
new FileInputStream(file),
new ByteArrayInputStream("</PlatformAuditEvents>".getBytes())
}))
));
in = xstream.createObjectInputStream(reader);
Tutaj mam mieszane trzy obiekty InputStream, jako pierwszy i trzeci z nich te, zapewniające wymaganą brakujące znaczniki w przetwarzanym pliku.
To rozwiązanie zostało zainspirowane tym SO Question. Mam nadzieję, że to pomaga komuś.
Wygląda na to, że rozmowa o tym trwa i ma to sens. jest oparty na parserze XML, a XML musi zawierać węzeł główny. Wygląda na to, że odpowiedź brzmi "nie może". http://www.nabble.com/Serializing-JSON-with-no-root--td21732630.html –