Gostaria de saber como faço pra imprimir no console ou até mesmo gravar em um banco os dados vindo de uma URL do tipo json, usando o vraptor 3? Mais ou menos assim?...Como eu passo essa função javascript pro vraptor?
não entendi o que vc quer fazer… vc tá dando um getJSON em outro site (isso já não funciona mto bem) e esse site vai retornar a função que vc vai executar?
Então, eu tenho esse link http://www.comiteitajai.org.br/alerta/Alerta/json/ultimas.json que me devolve os dados na tela no formato JSON. Gostaria de armazená-los no banco de dados usando o Vraptor 3. Geralmente faz-se o caminho inverso né, pega-se os dados do banco e e devolve em formato JSON. O que eu gostaria de fazer é uma desserialização.
cara, o ideal é vc fazer isso a partir do seu servidor mesmo, com algum cliente http qualquer. Daí vc recebe o json e extrai os dados que você quer salvar no seu banco…
o $.getJSON não vai funcionar pois vc não pode fazer uma chamada ajax para outro site, você precisa usar jsonp (veja se esse servidor suporta isso), daí vc teria que transformar o json em dados de formulário e postar para o seu sistema.
Lucas,
Mudei a versão do vraptor p/ 3.4.0 e consegui rodar o cód. No entanto está dando o seguinte erro “Caused by: java.lang.UnsupportedOperationException: The JsonHierarchicalStreamDriver can only write JSON”
@Path("/")
public void index() throws MalformedURLException, IOException {
InputStream input = null;
OutputStream output = null;
try {
input = new URL("http://www.comiteitajai.org.br/alerta/Alerta/json/ultimas.json").openStream();
output = new FileOutputStream("c:/output.json");
byte[] buffer = new byte[1024];
for (int length = 0; (length = input.read(buffer)) > 0;) {
output.write(buffer, 0, length);
}
XStream xstream = new XStream(new JsonHierarchicalStreamDriver());
xstream = builder.jsonInstance();
Itajai itajai = (Itajai) xstream.fromXML(input); //O ERRO ESTÁ NESSA LINHA
System.out.println(itajai);
} finally {
if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
if (input != null) try { input.close(); } catch (IOException logOrIgnore) {}
}
}