我正在尝试构建一个应该使用json / x-application数据的rest api。现在我已经查看了两个库javax.json-api和org.json来处理数据。
示例JSON:
{
"error": "false",
"error_msg": "",
"version": "1.13.10",
"result": {
"malware": {
"finding1": {
"file": "/path/to/filep",
"malware": "{HEX}r2h.malware.blue.44"
}
}
},
"newest_version": "1.13.10"
}
如果我现在使用javax JsonObject使用它,它将工作,我可以继续我的代码。但是,如果我发布此数据并使用org.json.JSONObject,我将在客户端收到回复:
无法识别的字段"错误" (类org.json.JSONObject),未标记为可忽略
试图在网上找到回复,但我没有介绍解释这个问题的任何内容?
问候并致谢
答案 0 :(得分:0)
首先,你所有的json都是有效的json。第二件事是你得到一个错误的响应,这意味着错误不在你的代码中。第三件事错误是“无法识别的字段”,这意味着客户端代码中的POJO类不包含字段“错误”。
答案 1 :(得分:0)
好吧,
我真的不知道是否有解决方案。最终,REST架构风格不支持JSONObject(org.json.JSONObject)。但是,解决方法非常简单,只需将json作为String使用(仍然可以声明HTTP请求以强制执行类型application / json)。
所以这可能如下所示:
@Path("/myendpoint")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public String receiveRequest(String json) {
JSONObject jo = new JSONObject(json);
...
}