diff --git a/src/main/java/com/restfb/DefaultJsonMapper.java b/src/main/java/com/restfb/DefaultJsonMapper.java index 10cb7e4c7..6fd02b49f 100644 --- a/src/main/java/com/restfb/DefaultJsonMapper.java +++ b/src/main/java/com/restfb/DefaultJsonMapper.java @@ -209,7 +209,7 @@ public T toJavaObject(String json, Class type) { JsonObject jsonObject = jsonValue.asObject(); if (instance instanceof AbstractFacebookType) { - ReflectionUtils.setJson(instance, jsonObject); + ReflectionUtils.setJson(instance, json); } // For each Facebook-annotated field on the current Java object, pull data diff --git a/src/main/java/com/restfb/util/ReflectionUtils.java b/src/main/java/com/restfb/util/ReflectionUtils.java index fe6168972..8bb870413 100644 --- a/src/main/java/com/restfb/util/ReflectionUtils.java +++ b/src/main/java/com/restfb/util/ReflectionUtils.java @@ -61,10 +61,10 @@ private ReflectionUtils() { // prevent instantiation } - public static void setJson(Object cls, JsonObject obj) { - if (cls == null || obj == null) return; // if + public static void setJson(Object cls, String obj) { + if (cls == null || obj == null) return; // if some object is null we skip this step List> annotatedFields = findFieldsWithAnnotation(cls.getClass(), OriginalJson.class); - annotatedFields.stream().map(FieldWithAnnotation::getField).filter(f -> JsonObject.class.equals(f.getType())).forEach(f -> setFieldData(f, cls, obj)); + annotatedFields.stream().map(FieldWithAnnotation::getField).filter(f -> String.class.equals(f.getType())).forEach(f -> setFieldData(f, cls, obj)); } private static void setFieldData(Field field, Object obj, Object data) { diff --git a/src/main/lombok/com/restfb/types/From.java b/src/main/lombok/com/restfb/types/From.java index bbd99d601..4c118219e 100644 --- a/src/main/lombok/com/restfb/types/From.java +++ b/src/main/lombok/com/restfb/types/From.java @@ -32,7 +32,7 @@ public class From extends CategorizedFacebookType { @OriginalJson - private JsonObject json; + private String json; @Setter private User user; @@ -61,9 +61,8 @@ public Page getAsPage() { @JsonMapper.JsonMappingCompleted protected void convert(JsonMapper jsonMapper) { if (json != null) { - String jsonString = json.toString(); - user = jsonMapper.toJavaObject(jsonString, User.class); - page = jsonMapper.toJavaObject(jsonString, Page.class); + user = jsonMapper.toJavaObject(json, User.class); + page = jsonMapper.toJavaObject(json, Page.class); } }