Java Jersey Web服务:使用JSON请求
我有一个由WitjJava和Jersey制作的web服务。我想接收一个JSON请求,并解析JSON以保存存储在数据库JSON上的值 这是mi web服务代码:Java Jersey Web服务:使用JSON请求,java,angularjs,json,rest,jersey,Java,Angularjs,Json,Rest,Jersey,我有一个由WitjJava和Jersey制作的web服务。我想接收一个JSON请求,并解析JSON以保存存储在数据库JSON上的值 这是mi web服务代码: @Path("companies") public class Companies { @Path("add") @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public JSO
@Path("companies")
public class Companies {
@Path("add")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public JSONObject addCompanies(JSONObject inputJsonObj){
String input = (String) inputJsonObj.get("company");
String output = "The input you sent is :" + input;
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("output", output);
return outputJsonObj;
}
}
客户端由AngularJS制成:
$scope.company = "";
$scope.submit = function(){
// Writing it to the server
//
var dataObj = {
company : $scope.company
};
var res = $http.post('http://localhost:8080/WS-Test2/crunchify/companies/add', dataObj);
res.success(function(data, status, headers, config) {
$scope.message = data;
notify("succes");
});
res.error(function(data, status, headers, config) {
//alert( "failure message: " + JSON.stringify({data: data}));
notify("fail");
});
};
这是我将JSON传递给web服务时遇到的错误:
Status Code:415
这是我发出的请求:
{"company":"Testing2"}
这是我的网络选项卡:
没有进一步的配置,
JSONObject
不是Jersey支持的东西。您只需要使用字符串
public String addCompanies(String json){
JSONObject inputJsonObj = new JSONObject(json)
String input = (String) inputJsonObj.get("company");
String output = "The input you sent is :" + input;
JSONObject outputJsonObj = new JSONObject();
outputJsonObj.put("output", output);
return outputJsonObj.toString();
}
如果您真的想使用JSONObject
,您可以签出
另请参见:
- 了解Jersey如何处理序列化和反序列化