Ich weiß, dass dies eine alte Frage ist, aber ich werde meine Lösung nach einem ganzen Morgen googeln posten. Die Antwort besteht darin, einen Dummy-Stammknoten (Start- und Terminierungstags) bereitzustellen. Um dies zu erreichen, einer Ihrer besten Freunde ist SequenceInputStream:
Mein Code ist folgende:
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);
Hier habe ich drei Input Objekte gemischt haben, die ersten und dritten sind diejenigen, die Bereitstellung der erforderlichen Tags fehlen in der bearbeiteten Datei.
Diese Lösung wurde von dieser SO Question inspiriert. Hoffe, das hilft jemandem.
Es sieht aus wie eine Unterhaltung darüber gegangen ist, und es macht Sinn. Es basiert auf einem XML-Parser und XML muss einen Wurzelknoten enthalten. Sieht aus wie die Antwort ist "es kann nicht". http://www.nabble.com/Serializing-JSON-with-no-root--td21732630.html –