我是如何解决Java bean的SerializationFeature.FAIL\u ON\u EMPTY\u bean问题的?
我当时正在使用SpringMVC架构为我目前的项目编写代码。我的密码是我是如何解决Java bean的SerializationFeature.FAIL\u ON\u EMPTY\u bean问题的?,java,json,spring,Java,Json,Spring,我当时正在使用SpringMVC架构为我目前的项目编写代码。我的密码是 向第三方供应商发出POST REST Web服务调用 将XML响应作为XML返回 解析XML响应并 将其放入数据库表列中 我能够编写代码并进行测试,直到上面的第3点,但无法测试第4点,因为一旦插入数据并从DB检索数据,Spring MVC体系结构开始抛出以下错误: [http-nio-8080-exec-5] ERROR c.t.dl4.restapi.APIExceptionMapper - No serializer f
[http-nio-8080-exec-5] ERROR c.t.dl4.restapi.APIExceptionMapper - No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.HashMap["responseData"]->org.json.simple.JSONObject["javaBean"]->org.json.simple.JSONObject["coulmnName"]->org.json.simple.JSONObject["xmlNode"])
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.json.JSONObject and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.HashMap["responseData"]->org.json.simple.JSONObject["javaBean"]->org.json.simple.JSONObject["coulmnName"]->org.json.simple.JSONObject["xmlNode"])
调试后,我发现了这个问题,这是一个简单的铸造错误,我忘记考虑编码时。
带有错误的代码如下所示:
if(RESPONSE.has("xmlNode") && !RESPONSE.get("xmlNode").equals("")) {
columenMap.put("xmlNode", RESPONSE.getJSONObject("xmlNode"));
}
JSONParser parser = new JSONParser();
if(RESPONSE.has("xmlNode") && !RESPONSE.get("xmlNode").equals("")) {
org.json.simple.JSONObject xmlNodeObj = (org.json.simple.JSONObject) parser.parse(RESPONSE.getJSONObject("xmlNode").toString());
columenMap.put("xmlNode", xmlNodeObj);
}
问题是我试图将org.json.JSONObject对象转换为org.json.simple.JSONObject,这导致了失败
解决方案是解析org.json.JSONObject中的值,然后将其转换为org.json.simple.JSONObject
固定/更新代码如下:
if(RESPONSE.has("xmlNode") && !RESPONSE.get("xmlNode").equals("")) {
columenMap.put("xmlNode", RESPONSE.getJSONObject("xmlNode"));
}
JSONParser parser = new JSONParser();
if(RESPONSE.has("xmlNode") && !RESPONSE.get("xmlNode").equals("")) {
org.json.simple.JSONObject xmlNodeObj = (org.json.simple.JSONObject) parser.parse(RESPONSE.getJSONObject("xmlNode").toString());
columenMap.put("xmlNode", xmlNodeObj);
}
这修复了SerializationFeature.FAIL\u ON\u EMPTY\u bean的问题
谢谢。如果您想共享解决方案,请将其添加为答案并接受该答案。如果您想共享解决方案,请将其添加为答案并接受该答案。