Jak zwrócić obiekt JSON z serwletu Java.
Wcześniej podczas wykonywania AJAX z serwletem zwracałem łańcuch. Czy istnieje typ obiektu JSON, którego należy użyć, czy po prostu zwracasz String, który wygląda jak obiekt JSON, np.
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
{ key1: value1, key2: value2 }
?Odpowiedzi:
Robię dokładnie to, co sugerujesz (powrót a
String
).Możesz jednak rozważyć ustawienie typu MIME, aby wskazać, że zwracasz JSON (zgodnie z tym innym postem stosu jest to „application / json”).
źródło
Zapisz obiekt JSON w strumieniu wyjściowym obiektu odpowiedzi.
Powinieneś także ustawić typ zawartości w następujący sposób, który określi, co zwracasz:
źródło
String jsonStr = "{\"my_key\": \"my_value\"}";
Najpierw przekonwertuj obiekt JSON na
String
. Następnie po prostu wyślij go do programu zapisującego odpowiedź wraz z typem zawartościapplication/json
i kodowaniem znaków UTF-8.Oto przykład zakładający, że używasz Google Gson do konwersji obiektu Java na ciąg JSON:
To wszystko.
Zobacz też:
źródło
źródło
Po prostu napisz ciąg znaków do strumienia wyjściowego. Możesz ustawić typ MIME na
text/javascript
( edit :application/json
jest najwyraźniej oficjalny), jeśli czujesz się pomocny. (Istnieje niewielka, ale niezerowa szansa, że pewnego dnia coś zepsuje i jest to dobra praktyka).źródło
Gson jest do tego bardzo przydatny. jeszcze łatwiejsze. oto mój przykład:
}
Muszę powiedzieć ludziom, że jeśli twoje vary są puste, gdy używasz gson, nie zbuduje dla ciebie json.
źródło
Użyłem Jacksona do konwersji obiektu Java na ciąg JSON i wysłania w następujący sposób.
źródło
Może istnieć obiekt JSON ułatwiający kodowanie w języku Java. Ale w końcu struktura danych zostanie serializowana do łańcucha. Przydałoby się ustawienie odpowiedniego typu MIME.
Proponuję JSON Java z json.org .
źródło
String
- wyjście powinno iść prosto doOutputStream
. Lub, jeśli z jakiegoś powodu potrzebna jest forma pośrednia, można użyćbyte[]
. Większość bibliotek Java JSON może pisać bezpośrednio doOutputStream
.W zależności od wersji Javy (lub JDK, SDK, JRE ... nie wiem, jestem nowy w ekosystemie Java),
JsonObject
jest abstrakcyjny. To jest nowa implementacja:źródło
response.setContentType ("text / json");
// utwórz ciąg JSON, sugeruję użycie jakiegoś frameworka.
String your_string;
out.write (your_string.getBytes ("UTF-8"));
źródło
Blisko odpowiedzi BalusC w 4 prostych wierszach za pomocą Google Gson lib. Dodaj następujące wiersze do metody serwletu:
Powodzenia!
źródło
Za pomocą Gson możesz wysłać odpowiedź json, patrz poniższy kod
Możesz zobaczyć ten kod
pomocny w odpowiedziach json z serwletu w java
źródło
Możesz użyć poniżej jak.
Jeśli chcesz użyć tablicy json:
Utwórz klasę o nazwie Model, jak poniżej
W sevlet getMethod można używać jak poniżej
Wyjście :
I you want json Object po prostu użyj:
Powyżej wyjścia funkcji :
Pełne źródło podaje GitHub: https://github.com/enamul95/ServeletJson.git
źródło