Remove unchecked casts

Closes gh-5975
pull/5975/merge
Casey Scarborough 9 years ago committed by Stephane Nicoll
parent 4023637b07
commit 84d3b6a41a

@ -21,6 +21,7 @@ import java.util.Map;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
/** /**
* Thin wrapper to adapt {@link Gson} to a {@link JsonParser}. * Thin wrapper to adapt {@link Gson} to a {@link JsonParser}.
@ -35,24 +36,24 @@ public class GsonJsonParser implements JsonParser {
private Gson gson = new GsonBuilder().create(); private Gson gson = new GsonBuilder().create();
@Override @Override
@SuppressWarnings("unchecked")
public Map<String, Object> parseMap(String json) { public Map<String, Object> parseMap(String json) {
if (json != null) { if (json != null) {
json = json.trim(); json = json.trim();
if (json.startsWith("{")) { if (json.startsWith("{")) {
return this.gson.fromJson(json, Map.class); TypeToken<Map<String, Object>> type = new TypeToken<Map<String, Object>>() { };
return this.gson.fromJson(json, type.getType());
} }
} }
throw new IllegalArgumentException("Cannot parse JSON"); throw new IllegalArgumentException("Cannot parse JSON");
} }
@Override @Override
@SuppressWarnings("unchecked")
public List<Object> parseList(String json) { public List<Object> parseList(String json) {
if (json != null) { if (json != null) {
json = json.trim(); json = json.trim();
if (json.startsWith("[")) { if (json.startsWith("[")) {
return this.gson.fromJson(json, List.class); TypeToken<List<Object>> type = new TypeToken<List<Object>>() { };
return this.gson.fromJson(json, type.getType());
} }
} }
throw new IllegalArgumentException("Cannot parse JSON"); throw new IllegalArgumentException("Cannot parse JSON");

@ -19,6 +19,7 @@ package org.springframework.boot.json;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
/** /**
@ -30,10 +31,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonJsonParser implements JsonParser { public class JacksonJsonParser implements JsonParser {
@Override @Override
@SuppressWarnings("unchecked")
public Map<String, Object> parseMap(String json) { public Map<String, Object> parseMap(String json) {
try { try {
return new ObjectMapper().readValue(json, Map.class); TypeReference<Map<String, Object>> type = new TypeReference<Map<String, Object>>() { };
return new ObjectMapper().readValue(json, type);
} }
catch (Exception ex) { catch (Exception ex) {
throw new IllegalArgumentException("Cannot parse JSON", ex); throw new IllegalArgumentException("Cannot parse JSON", ex);
@ -41,10 +42,10 @@ public class JacksonJsonParser implements JsonParser {
} }
@Override @Override
@SuppressWarnings("unchecked")
public List<Object> parseList(String json) { public List<Object> parseList(String json) {
try { try {
return new ObjectMapper().readValue(json, List.class); TypeReference<List<Object>> type = new TypeReference<List<Object>>() { };
return new ObjectMapper().readValue(json, type);
} }
catch (Exception ex) { catch (Exception ex) {
throw new IllegalArgumentException("Cannot parse JSON", ex); throw new IllegalArgumentException("Cannot parse JSON", ex);

Loading…
Cancel
Save