我创建了一个需要在jersey中发布的json,这是一个由grizzly运行的服务器,它有一个REST webservice获取需要输出的传入json对象。我正在尝试但不确定如何正确实现这一点。
import java.io.IOException;
import java.io.InputStream;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
import org.apache.commons.io.IOUtils;
import javax.ws.rs.*;
@Path("/helloworld")
public class GetData {
@GET
@Consumes("application/json")
public String getResource() {
JSONObject obj = new JSONObject();
String result = obj.getString("name");
return result;
}
}
我有一个html文件,在onload
时运行此方法 function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: {
name:"Bob",
},
dataType: 'json'
});
alert("json posted!");
};
答案 0 :(得分:75)
要将json发送到服务器,首先必须创建json
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
name:"Bob",
...
}),
dataType: 'json'
});
}
这就是如何构造ajax请求以将json作为post var。
发送function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
data: { json: JSON.stringify({
name:"Bob",
...
})},
dataType: 'json'
});
}
json现在将在json
post var。
答案 1 :(得分:0)
也可以使用FormData()
。但您需要将contentType
设置为false
:
var data = new FormData();
data.append('name', 'Bob');
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: false,
data: data,
dataType: 'json'
});
}