【发布时间】:2017-02-15 00:42:16
【问题描述】:
其余 API 因 400 Bad request 而失败,响应如下
javax.xml.bind.JAXBException - 带有链接异常:[org.codehaus.jettison.json.JSONException:JSONObject 文本必须以 '{' 在字符 0 的 ]
处开头
下面是我的代码,
API 资源
@GET
@Path("/getTeams")
@Produces(MediaType.APPLICATION_JSON)
public Response getTeamList(final TeamSearchRequest teamSearchRequest, @Context UriInfo uriInfo) {
//Business
}
请求类
@XmlRootElement(name = "teamSearchRequest")
public class TeamSearchRequest {
private String searchText;
private String searcherTeamId;
public TeamSearchRequest(){}
//setters and getters
}
API URI - http://localhost:8080/letsplay/team/getTeams
API 请求正文 -
{
"teamSearchRequest": {
"searchText": "Mumbai",
"searcherTeamId": "1"
}
}
注意 - 我已经检查了 SO 中的所有类似问题。
非常感谢任何建议。
【问题讨论】:
-
您是否为您的项目设置了 media-moxy 依赖项以启用 JSON 支持?假设您使用的是泽西岛..
-
@Prathap,我使用的是 Spring Rest Integration 而不是 Jersey,所以 media-moxy 不适用。
-
您是否使用 JSONObject 来映射请求值?如果是这样,您可以将
JSONObject作为方法参数而不是TeamSearchRequest,然后执行jsonObject.getJSONObject("teamSearchRequest")以获得所需的值。
标签: java json rest http spring-rest