Ich programmiere eine Java-Anwendung und mit XStream, ich muss die gesamte Unmarshal auf eigene Faust machen, könnte ich den Code machen, um die XML-Eigenschaften zu bekommen, aber es gibt eine Problem: Ich kann die andere Klasse (Agent) nicht nehmen.XStream - Machen Sie eine Klasse in benutzerdefinierten Konverter (unmarshal)
Ich habe "reader.getValue()" ausprobiert und dann die XML in das Device-Tag übernommen, aber es funktioniert nicht.
XML:
<Device dev_id="99999">
<Agent>
<Name>PPPOOOLLL</Name>
<Enable>1</Enable>
<MAC>FF:FF:FF:FF:FF:FF</MAC>
<IMEI/>
<Addr>222.222.1.117</Addr>
<LocalAddr>222.222.1.117</LocalAddr>
<Port>80</Port>
<LocalPort>80</LocalPort>
<Username/>
<Passwd/>
<Mask>444.444.444.0</Mask>
<GW>555.555.1.1</GW>
<Model devtype_id="88">TTTYYYUUU2 3268</Model>
<Incon incon_id="8">HWg PUSH via HTML</Incon>
<LogPer>60</LogPer>
<DatalogPer>3600</DatalogPer>
<Push push_id="1">Default</Push>
<Status>2</Status>
<Alias>XXXYYYVVV</Alias>
<Description/>
</Agent>
</Device>
Nun, mein Code so ist, und ich weiß nicht, wie ich den Agent-Tag bekommen konnte und es in eine Java-Klasse verwandeln.
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
DevicePai devicePai = new DevicePai();
devicePai.setDev_id(reader.getAttribute("dev_id"));
devicePai.setAgent(???);
return devicePai;
}
ich nicht ändern kann ich diese Programmierung bin noch die API Ich verwende, brauche ich die Abstellungs zu machen. Jeder andere Aspekt meines Codes ist in Ordnung, ich habe getestet, aber wenn Sie etwas im Sinn haben, habe ich vielleicht vergessen, bitte sagen Sie mir, und ich werde so schnell wie möglich überprüfen. :)
Dies ist die XStream Version ich verwende: ' \t \t \t xs tream \t \t \t xstream \t \t \t 1.1.2 \t \t \t \t \t \t \t xpp3 \t \t \t xpp3 \t \t \t 1.1.4c \t \t ' –
Haben Sie http://x-stream.github.io/converter-tutorial.html#ComplexConverter gelesen? –
Vielen Dank !! Können Sie mit diesem Link eine Antwort geben? Also kann ich dir meine Stimme geben! –