使用 SimpleXmlConverter 或任何其他库将自定义模型转换为 XML 字符串?
Convert custom model to XML string with SimpleXmlConverter or by any other library?
我正在使用 Retrofit2 和 SimpleXmlConverter 来调用 API。请求和响应基于 XML 数据。我需要在请求正文中发送带有标签的 XML 字符串。
通过使用 SimpleXmlConverter,我可以轻松地将 XML 响应解析为我的自定义模型,但我无法像使用 JsonConverter 那样将我的自定义模型转换为 XML 字符串。
有什么方法可以将我的自定义模型转换成 XML 字符串吗?
通过使用 SimpleXmlConverter 库的 Serializer class,您可以进行解析。参考以下代码:
这是自定义模型class
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name = "notification", strict = false)
public class NotificationModel {
@Element(name = "code")
public String errorCode;
@Element(name = "message")
public String errorMessage;
}
这是您要解析到模型中的 xml 字符串
<notification xmlns:d="http://www.website.com/pref/data">
<code>004</code>
<message>Error during value update</message>
<severity>info</severity>
<target />
</notification>
使用下面的代码解析上面的xml字符串
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
String xmlString = "above xml string"
try {
Serializer serializer = new Persister();
NotificationModel notificationModel = serializer.read(NotificationModel.class, xmlString);
//TODO: Use notificationModel's variables with filled values
} catch (Exception e) {
e.printStackTrace();
}
我正在使用 Retrofit2 和 SimpleXmlConverter 来调用 API。请求和响应基于 XML 数据。我需要在请求正文中发送带有标签的 XML 字符串。
通过使用 SimpleXmlConverter,我可以轻松地将 XML 响应解析为我的自定义模型,但我无法像使用 JsonConverter 那样将我的自定义模型转换为 XML 字符串。
有什么方法可以将我的自定义模型转换成 XML 字符串吗?
通过使用 SimpleXmlConverter 库的 Serializer class,您可以进行解析。参考以下代码:
这是自定义模型class
import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;
@Root(name = "notification", strict = false)
public class NotificationModel {
@Element(name = "code")
public String errorCode;
@Element(name = "message")
public String errorMessage;
}
这是您要解析到模型中的 xml 字符串
<notification xmlns:d="http://www.website.com/pref/data">
<code>004</code>
<message>Error during value update</message>
<severity>info</severity>
<target />
</notification>
使用下面的代码解析上面的xml字符串
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
String xmlString = "above xml string"
try {
Serializer serializer = new Persister();
NotificationModel notificationModel = serializer.read(NotificationModel.class, xmlString);
//TODO: Use notificationModel's variables with filled values
} catch (Exception e) {
e.printStackTrace();
}