Pergunta

Estou tentando passar uma matriz de JavaScript para Java Servlet usando Jackson, como isso pode ser feito .. obrigado

Foi útil?

Solução

A ideia básica deve ser direta:

Servidor:

doPost(HttpServletRequest req, HttpServletResponse resp)
{
  ObjectMapper mapper = new ObjectMapper();
  ArrayNode rootNode = mapper.readValue(req.getReader(), ArrayNode.class);
}

Cliente:

Usando jQuery (você também pode fazê -lo com outras estruturas ou manualmente). Carregar uma cópia de JSON2.JS para garantir que você tenha json.stringify.

jQuery.ajax({
  type: 'POST',
  url: servletURL,
  data: JSON.stringify(jsArray),
  dataType: 'json',
  contentType: 'application/json'
});

Outras dicas

Para passar a matriz do navegador para o lado do servidor, você não precisa de Jackson. Você só precisa de Ajax. Por exemplo, usando o jQuery, você pode fazer da seguinte:

$.ajax({
  url: 'your servlet url',
  data: yourArray
});

Então, no lado do servidor, você pode deseralizar o JSON em um Javabean ou, no seu caso, um java.util.List Usando Jackson. Você pode fazer isso desta maneira:

ObjectMapper mapper = new ObjectMapper();
List array = mapper.readValue(jsonText, List.class);

Onde jsonText contém a representação de string de yourArray Isso é enviado para o lado do servidor do navegador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top