我们有一个方法返回一个使用的形成的String响应 的 org.w3c.dom.Document中即可。因此,默认响应采用XML格式。现在我们也需要支持JSON响应。由于我们使用org.w3c.dom.Document手动准备XML响应而不是使用POJO并使用 @XmlRootElement 对其进行注释,因此我们无法修改遗留代码,如何同时支持JSON和XML响应类型?
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
只需通过注释上述方法并在请求中使用标题 接受:application / json 就会导致错误:意外'<'
答案 0 :(得分:1)
我希望你在寻找
public class Main {
public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING =
"<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";
public static void main(String[] args) {
try {
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);
} catch (JSONException je) {
System.out.println(je.toString());
}
}
}
您可以使用逻辑将XML响应转换为JSON,但请记住添加if条件,检查响应类型。