/ / Wie bekomme ich Parameter von Json im Frühjahr MVC? - Json, Frühling, Servlet-3.0

Wie bekomme ich Parameter von Json im Frühjahr mvc? - JSON, Frühling, Servlet-3.0

Ich sende Json-Daten:

{
"username":"abc@gmail.com",
"password":"abc"
}

Und in meinem benutzerdefinierten Filter möchte ich zugreifen username und password

Mein Filter ist:

@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//code to get parameters from json
}

Antworten:

0 für die Antwort № 1

Rufen Sie mithilfe von Apache-IO-Utils den JSON-String aus dem Eingabestrom ab und konvertieren Sie den JSON-String in eine Zuordnung:

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>

@Override

public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain) throws IOException, ServletException {
try {
String jsonBody = IOUtils.toString(request.getInputStream());
//convert json string to HashMap
//using http://stackoverflow.com/a/22011887/1358551
} catch (Exception e) {
logger.warn("", e);
return new ResponseEntity<String>(e.getMessage(),
HttpStatus.BAD_REQUEST);
}
}

0 für die Antwort № 2

Ich würde vorschlagen, den Google Gson Parser zu verwenden

Map<String, String> extractLoginRequest(final ServletRequest request) throws IOException {
final StringBuffer sb = new StringBuffer();
String line = null;
final BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
sb.append(line);
}
// as far as I know, gson might not be 100% threadsave
return new Gson().fromJson(sb.toString(), HashMap.class);
}

Jetzt können Sie mit auf Ihre Parameter zugreifen

Map<String, String> loginRequest = extractLoginRequest(request);
loginRequest.get("username")

Falls Sie Maven verwenden, ist dies die Abhängigkeit, die Sie verwenden könnten:

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>