Comment renvoyer un objet JSON à partir d'un servlet Java.
Auparavant, en faisant AJAX avec un servlet, j'ai renvoyé une chaîne. Y a-t-il un type d'objet JSON qui doit être utilisé, ou renvoyez-vous simplement une chaîne qui ressemble à un objet JSON, par exemple
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
{ key1: value1, key2: value2 }
?Réponses:
Je fais exactement ce que vous suggérez (retournez a
String
).Cependant, vous pouvez envisager de définir le type MIME pour indiquer que vous retournez JSON (selon cet autre article de stackoverflow, c'est "application / json").
la source
Écrivez l'objet JSON dans le flux de sortie de l'objet de réponse.
Vous devez également définir le type de contenu comme suit, qui spécifiera ce que vous renvoyez:
la source
String jsonStr = "{\"my_key\": \"my_value\"}";
Commencez par convertir l'objet JSON en
String
. Ensuite, écrivez-le simplement au rédacteur de réponse avec le type de contenuapplication/json
et le codage de caractères de UTF-8.Voici un exemple en supposant que vous utilisez Google Gson pour convertir un objet Java en chaîne JSON:
C'est tout.
Voir également:
la source
la source
Écrivez simplement une chaîne dans le flux de sortie. Vous pouvez définir le type MIME sur
text/javascript
( edit :application/json
est apparemment officialer) si vous vous sentez utile. (Il y a une petite chance non nulle que cela empêche quelque chose de le gâcher un jour, et c'est une bonne pratique.)la source
Gson est très utile pour cela. plus facile même. voici mon exemple:
}
Je dois dire aux gens si les vars sont vides lors de l'utilisation de gson, il ne construira pas le json pour vous.
la source
J'ai utilisé Jackson pour convertir l'objet Java en chaîne JSON et l'envoyer comme suit.
la source
Il peut y avoir un objet JSON pour faciliter le codage Java. Mais enfin, la structure de données sera sérialisée en chaîne. Définir un type MIME approprié serait bien.
Je suggérerais JSON Java de json.org .
la source
String
- la sortie doit aller directement àOutputStream
. Ou, si une forme intermédiaire est nécessaire pour une raison quelconque, peut utiliserbyte[]
. La plupart des bibliothèques Java JSON peuvent écrire directement dansOutputStream
.Selon la version de Java (ou JDK, SDK, JRE ... je ne sais pas, je suis nouveau dans l'écosystème Java),
JsonObject
c'est abstrait. Donc, ceci est une nouvelle implémentation:la source
response.setContentType ("text / json");
// crée la chaîne JSON, je suggère d'utiliser un framework.
String your_string;
out.write (votre_string.getBytes ("UTF-8"));
la source
Proche de la réponse BalusC en 4 lignes simples en utilisant Google Gson lib. Ajoutez ces lignes à la méthode servlet:
Bonne chance!
la source
En utilisant Gson, vous pouvez envoyer une réponse json, voir le code ci-dessous
Vous pouvez voir ce code
utile de la réponse json du servlet en java
la source
Vous pouvez utiliser ci-dessous comme.
Si vous voulez utiliser le tableau json:
Créer une classe nommée Model comme ci-dessous
Dans sevlet getMethod, vous pouvez utiliser comme ci-dessous
Sortie :
Je veux que json Object utilise simplement comme:
Sortie de fonction ci-dessus :
La source complète est donnée à GitHub: https://github.com/enamul95/ServeletJson.git
la source