Como você retorna um objeto JSON de um servlet Java.
Anteriormente, ao fazer o AJAX com um servlet, retornei uma string. Existe um tipo de objeto JSON que precisa ser usado ou você simplesmente retorna uma String que se parece com um objeto JSON, por exemplo
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
{ key1: value1, key2: value2 }
?Respostas:
Eu faço exatamente o que você sugere (retorne a
String
).Você pode considerar configurar o tipo MIME para indicar que você está retornando JSON (embora de acordo com essa outra postagem sobre stackoverflow , seja "application / json").
fonte
Escreva o objeto JSON no fluxo de saída do objeto de resposta.
Você também deve definir o tipo de conteúdo da seguinte forma, que especificará o que você está retornando:
fonte
String jsonStr = "{\"my_key\": \"my_value\"}";
Primeiro converta o objeto JSON para
String
. Em seguida, basta escrevê-lo no gravador de respostas, juntamente com o tipo de conteúdoapplication/json
e a codificação de caracteres do UTF-8.Aqui está um exemplo, supondo que você esteja usando o Google Gson para converter um objeto Java em uma string JSON:
Isso é tudo.
Veja também:
fonte
fonte
Basta escrever uma string no fluxo de saída. Você pode definir o tipo MIME como
text/javascript
( editar :application/json
aparentemente é oficial) se estiver se sentindo útil. (Há uma chance pequena, mas diferente de zero, de impedir que algo atrapalhe um dia, e é uma boa prática.)fonte
Gson é muito útil para isso. mais fácil mesmo. aqui está o meu exemplo:
}
Tenho que dizer às pessoas se seus vars estão vazios ao usar o gson, ele não criará o json para você.
fonte
Usei Jackson para converter Java Object em JSON e enviar da seguinte maneira.
fonte
Pode haver um objeto JSON para conveniência de codificação Java. Mas, finalmente, a estrutura de dados será serializada em string. Definir um tipo MIME adequado seria bom.
Eu sugiro JSON Java do json.org .
fonte
String
saída - deve ir diretamente paraOutputStream
. Ou, se a forma intermediária for necessária por algum motivo, pode ser usadabyte[]
. A maioria das bibliotecas Java JSON pode gravar diretamenteOutputStream
.Dependendo da versão do Java (ou JDK, SDK, JRE ... não sei, sou novo no ecossistema Java), o
JsonObject
resumo é abstrato. Portanto, esta é uma nova implementação:fonte
response.setContentType ("text / json");
// cria a string JSON, sugiro usar alguma estrutura.
String your_string;
out.write (your_string.getBytes ("UTF-8"));
fonte
Perto da resposta BalusC em 4 linhas simples, usando o Google Gson lib. Inclua estas linhas no método do servlet:
Boa sorte!
fonte
Usando o Gson, você pode enviar a resposta do json, veja o código abaixo
Você pode ver este código
útil da resposta json do servlet em java
fonte
Você pode usar abaixo como.
Se você deseja usar o json array:
Crie uma classe chamada Model como abaixo
No getMethod de sevlet você pode usar como abaixo
Saída :
Eu quero json Object basta usar como:
Acima da função Saída :
A fonte completa é fornecida ao GitHub: https://github.com/enamul95/ServeletJson.git
fonte