Passant de tableau javascript pour servlet java en utilisant Jackson
-
26-09-2019 - |
Question
Im essayant de passer un tableau de javascript pour servlet java en utilisant Jackson, comment cela peut être done..thanks
La solution
L'idée de base devrait être simple:
Serveur:
doPost(HttpServletRequest req, HttpServletResponse resp)
{
ObjectMapper mapper = new ObjectMapper();
ArrayNode rootNode = mapper.readValue(req.getReader(), ArrayNode.class);
}
Client:
En utilisant jQuery (vous pouvez aussi le faire avec d'autres cadres, ou manuellement). Chargez une copie de json2.js pour vous assurer que vous avez JSON.stringify.
jQuery.ajax({
type: 'POST',
url: servletURL,
data: JSON.stringify(jsArray),
dataType: 'json',
contentType: 'application/json'
});
Autres conseils
Pour passer le tableau à partir du navigateur vers le côté serveur que vous n'avez pas besoin Jackson. Vous avez juste besoin d'Ajax. Par exemple, en utilisant jQuery vous pouvez le faire de cette façon:
$.ajax({
url: 'your servlet url',
data: yourArray
});
Ensuite, du côté du serveur, vous pouvez désérialiser le JSON dans un JavaBean ou, dans votre cas, un java.util.List
en utilisant Jackson. Vous pouvez le faire de cette façon:
ObjectMapper mapper = new ObjectMapper();
List array = mapper.readValue(jsonText, List.class);
Où jsonText
contient la représentation de chaîne de yourArray
qui est envoyé au côté serveur à partir du navigateur.