我正在使用JAXB将XML文件转换为java对象
我在Web上的示例中看了很多但是当我将它解组为java对象时仍然在我的对象中获取空值
我想念的是什么?
File file = new File("BootloaderProtocol.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Command.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Command commanda = (Command) jaxbUnmarshaller.unmarshal(file);
System.out.println(commanda);
我的班级:
@XmlRootElement(name="Command")
public class Command {
String COMMAND_ID;
String COMMAND_NAME;
String COMMAND_CODES;
public String getCOMMAND_ID() {
return COMMAND_ID;
}
@XmlElement
public void setCOMMAND_ID(String COMMAND_ID) {
this.COMMAND_ID = COMMAND_ID;
}
public String getCOMMAND_NAME() {
return COMMAND_NAME;
}
@XmlElement
public void setCOMMAND_NAME(String COMMAND_NAME) {
this.COMMAND_NAME = COMMAND_NAME;
}
public String getCOMMAND_CODES() {
return COMMAND_CODES;
}
@XmlElement
public void setCOMMAND_CODES(String COMMAND_CODES) {
this.COMMAND_CODES = COMMAND_CODES;
}
}
这是我的XML文件:
<Command>
<COMMAND>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</COMMAND>
</Command>
答案 0 :(得分:2)
这是正确的xml结构:
<Command>
<COMMAND_ID>0xFE01</COMMAND_ID>
<COMMAND_NAME>Start bootloader</COMMAND_NAME>
<COMMAND_CODES>EE120301FE0900</COMMAND_CODES>
</Command>
使用此xml尝试您的代码。在代码中使用xml文件的正确路径。
顺便说一句,我已经用这个xml测试了你的代码,它运行正常。
答案 1 :(得分:0)
尝试这样的事情
public class Command {
@XmlElement(name="COMMAND")
public NestedCommand command;
static class NestedCommand {
String COMMAND_ID;