Je crée un json qui doit être posté dans jersey, un serveur exécuté par grizzly qui possède un service Web REST récupère l'objet json entrant qui doit être généré. J'essaie, mais je ne sais pas comment le mettre en œuvre correctement.
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;
}
}
j'ai un fichier html qui exécute cette méthode en charge
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: {
name:"Bob",
},
dataType: 'json'
});
alert("json posted!");
};
Pour envoyer json au serveur, vous devez d’abord créer json
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
name:"Bob",
...
}),
dataType: 'json'
});
}
Voici comment structurer la requête ajax pour envoyer le json sous la forme d'une variable post.
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
data: { json: JSON.stringify({
name:"Bob",
...
})},
dataType: 'json'
});
}
Le json sera maintenant dans le json
post var.
Il est également possible d'utiliser FormData()
. Mais vous devez définir contentType
comme false
:
var data = new FormData();
data.append('name', 'Bob');
function sendData() {
$.ajax({
url: '/helloworld',
type: 'POST',
contentType: false,
data: data,
dataType: 'json'
});
}