List of usage examples for com.google.gson GsonBuilder registerTypeAdapter
@SuppressWarnings({ "unchecked", "rawtypes" }) public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter)
From source file:bean.EJBean.java
License:Open Source License
public List<Espacio> getEspaciosFromEdificio(String id) { client = ClientBuilder.newClient();/*from www . jav a 2 s.c om*/ String espaciosJSON = client.target(baseURI).path("edificios").path(id).path("espacios") .request(MediaType.APPLICATION_JSON).get(String.class); client.close(); GsonBuilder gsonBuilder = new GsonBuilder(); JsonDeserializer<Espacio> deserializer = new JsonDeserializer<Espacio>() { @Override public Espacio deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) { JsonObject jsonObject = json.getAsJsonObject(); Espacio e = new Espacio(); // System.out.println("HOLA "+jsonObject.get("bloque").getAsString()); e.setIdespacio(jsonObject.get("idespacio").getAsString()); e.setNombrees(jsonObject.get("nombrees").getAsString()); // e.setNombreen(jsonObject.get("nombreen").getAsString()); // e.setNombrevl(jsonObject.get("nombrevl").getAsString()); e.setBloque(jsonObject.get("bloque").getAsString()); e.setBoundingbox(jsonObject.get("boundingbox").getAsString()); e.setPiso(jsonObject.get("piso").getAsInt()); e.setTipo(jsonObject.get("tipo").getAsString()); e.setVisibilidad(jsonObject.get("visibilidad").getAsBoolean()); JsonObject coordenadaObj = jsonObject.getAsJsonObject("coordenada"); Coordenada coordenada = new Coordenada(); coordenada.setIdcoordenada(coordenadaObj.get("idcoordenada").getAsString()); coordenada.setDescripcion(coordenadaObj.get("idcoordenada").getAsString()); coordenada.setLatitud(coordenadaObj.get("latitud").getAsDouble()); coordenada.setLongitud(coordenadaObj.get("longitud").getAsDouble()); e.setCoordenada(coordenada); JsonObject edificioObj = jsonObject.getAsJsonObject("edificio"); Edificio edificio = new Edificio(); edificio.setIdedificio(edificioObj.get("idedificio").getAsString()); /* * edificio.setNombrees(edificioObj.get("nombrees").getAsString()); * edificio.setNombreen(edificioObj.get("nombreen").getAsString()); * edificio.setNombrevl(edificioObj.get("nombrevl").getAsString()); * edificio.setEnlace(edificioObj.get("enlace").getAsString()); * edificio.setXano(edificioObj.get("xano").getAsString()); * edificio.setTopleft(edificioObj.get("topleft").getAsString()); * edificio.setTopright(edificioObj.get("topright").getAsString()); * edificio.setBottomleft(edificioObj.get("bottomleft").getAsString()); */ e.setEdificio(edificio); List<Panorama> lu = new ArrayList<Panorama>(); JsonArray panoramaArray = jsonObject.getAsJsonArray("panoramas"); for (JsonElement panorama : panoramaArray) { Panorama p = new Panorama(); JsonObject panoramaObj = panorama.getAsJsonObject(); p.setIdpanorama(panoramaObj.get("idpanorama").getAsString()); p.setEnlace(panoramaObj.get("enlace").getAsString()); if (panoramaObj.has("panorama")) { p.setPanorama(panoramaObj.get("panorama").getAsInt()); } lu.add(p); } e.setPanoramas(lu); List<Profesor> lp = new ArrayList<Profesor>(); if (jsonObject.has("profesores")) { JsonArray profesorArray = jsonObject.getAsJsonArray("profesores"); for (JsonElement profesor : profesorArray) { Profesor p = new Profesor(); JsonObject profesorObj = profesor.getAsJsonObject(); p.setIdprofesor(profesorObj.get("idprofesor").getAsString()); p.setUsuario(profesorObj.get("usuario").getAsString()); p.setVisibilidad(profesorObj.get("visibilidad").getAsBoolean()); lp.add(p); } } e.setProfesores(lp); return e; } }; gsonBuilder.registerTypeAdapter(Espacio.class, deserializer); Type listType = new TypeToken<List<Espacio>>() { }.getType(); Gson customGson = gsonBuilder.create(); List<Espacio> jsonToEspacios = customGson.fromJson(espaciosJSON, listType); // System.out.println("Success Espacio: "+ jsonToEspacios.size()); return jsonToEspacios; }
From source file:blog.BlogHelper.java
License:Apache License
public static List<ImageHolder> loadImagesFrom(String pathname) { List<ImageHolder> imageHolders = new ArrayList<>(); try {//from ww w . java2 s. com GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapterFactory(new ClassTypeAdapterFactory()); gsonBuilder.registerTypeAdapter(Class.class, new ClassTypeAdapter()); Gson gson = gsonBuilder.create(); imageHolders .addAll(gson.fromJson(FileUtils.readFileToString(new File(pathname), Charset.defaultCharset()), new TypeToken<List<ImageHolder>>() { }.getType())); } catch (IOException e) { e.printStackTrace(); } return imageHolders; }
From source file:blog.identify.IdentifyMultipleFacesExample.java
License:Apache License
private static List<ImageHolder> candidates() throws IOException { GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapterFactory(new ClassTypeAdapterFactory()); gsonBuilder.registerTypeAdapter(Class.class, new ClassTypeAdapter()); Gson gson = gsonBuilder.create();//w w w. ja v a2 s. c o m return gson.fromJson( FileUtils.readFileToString(new File("src/test/resources/blog/sets/love_hate_candidates.json"), Charset.defaultCharset()), new TypeToken<List<ImageHolder>>() { }.getType()); }
From source file:br.ufg.inf.es.saep.sandbox.dominio.infraestrutura.Serializador.java
License:Creative Commons License
/** * Cria instncia de serializar preparada * para realizar converses entre objetos e * sequncias de caracters.//from w ww . j ava 2 s .co m */ public Serializador() { GsonBuilder gb = new GsonBuilder(); gb.registerTypeAdapter(Valor.class, new ValorSerializer()); gb.registerTypeAdapter(Valor.class, new ValorDeserializer()); gson = gb.create(); valorType = new TypeToken<Valor>() { }.getType(); pontuacaoType = new TypeToken<Pontuacao>() { }.getType(); }
From source file:br.ufmg.hc.telessaude.webservices.mobile.utils.GsonUtils.java
public static Gson getInstanceWithStringDateAdapter() { GsonBuilder builder = new GsonBuilder(); final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // final SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss a"); builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { @Override/*from w ww. jav a2s . com*/ public Date deserialize(JsonElement je, Type type, JsonDeserializationContext jdc) throws JsonParseException { String data_str = ""; Date data = null; try { data_str = je.getAsJsonPrimitive().getAsString(); if (data_str.replaceAll("[\\-\\d]", "").isEmpty()) { data = new Date(Long.parseLong(data_str)); } else { if (data_str.length() == 12) { data = new SimpleDateFormat("MMM dd, yyyy").parse(data_str); } else if (data_str.length() == 11) { data = new SimpleDateFormat("MMM d, yyyy").parse(data_str); } else if (data_str.length() == 10) { data = new SimpleDateFormat("dd/MM/yyyy").parse(data_str); } else { data = sdf.parse(data_str); } } } catch (ParseException ex) { Logger.getLogger(GsonUtils.class.getName()).log(Level.SEVERE, null, ex); } return data; } }); builder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() { @Override public JsonElement serialize(Date t, Type type, JsonSerializationContext jsc) { if (t == null) { return new JsonPrimitive((String) null); } return new JsonPrimitive(sdf.format(t)); } }); builder.registerTypeAdapter(java.sql.Date.class, new JsonSerializer<java.sql.Date>() { @Override public JsonElement serialize(java.sql.Date t, Type type, JsonSerializationContext jsc) { if (t == null) { return new JsonPrimitive((String) null); } return new JsonPrimitive(sdf.format(t)); } }); return builder.create(); }
From source file:ca.cmput301w14t09.elasticSearch.ElasticSearchOperations.java
License:GNU General Public License
/** * This method creates is what makes the bitmap into a json serialzable format *//*from www . j a v a 2 s .co m*/ private static void constructGson() { GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(Bitmap.class, new JsonBitmapConverter()); GSON = builder.create(); }
From source file:ca.cs.ualberta.localpost.controller.ElasticSearchOperations.java
License:Open Source License
/** * Constructs a Gson with a custom serializer / desserializer registered for * Bitmaps./* w w w. jav a2 s. com*/ */ private static void constructGson() { GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(Bitmap.class, new BitmapJsonConverter()); gson = builder.create(); }
From source file:ca.jackymok.tomatoes.toolbox.GsonRequest.java
License:Apache License
public GsonRequest(int method, String url, Class<T> clazz, Listener<T> listener, ErrorListener errorListener) { super(Method.GET, url, errorListener); this.mClazz = clazz; this.mListener = listener; //Create Gson qith custom Date parsing GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { final java.text.DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); @Override/* w ww .ja v a 2 s .c o m*/ public Date deserialize(JsonElement arg0, java.lang.reflect.Type arg1, JsonDeserializationContext arg2) throws JsonParseException { try { return df.parse(arg0.getAsString()); } catch (final java.text.ParseException e) { e.printStackTrace(); return null; } } }); mGson = gsonBuilder.create(); }
From source file:ca.oson.json.Oson.java
License:Open Source License
public Gson getGson() { if (gson == null) { GsonBuilder gsonBuilder = new GsonBuilder(); switch (getDefaultType()) { case ALWAYS: gsonBuilder.serializeNulls(); break; case NON_NULL: break; case NON_EMPTY: break; case DEFAULT: gsonBuilder.serializeNulls(); break; default://from w ww .ja va2 s . c o m gsonBuilder.serializeNulls(); break; } switch (getFieldNaming()) { case FIELD: // original field name: someField_name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY); break; case LOWER: // somefield_name -> some_field_name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); break; case UPPER: //SOMEFIELD_NAME -> SomeFieldName gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE); break; case CAMELCASE: // someFieldName gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY); break; case UPPER_CAMELCASE: // SomeFieldName gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE); break; case UNDERSCORE_CAMELCASE: // some_Field_Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); break; case UNDERSCORE_UPPER_CAMELCASE: // Some_Field_Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); break; case UNDERSCORE_LOWER: // some_field_name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); break; case UNDERSCORE_UPPER: // SOME_FIELD_NAME gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES); break; case SPACE_CAMELCASE: // some Field Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES); break; case SPACE_UPPER_CAMELCASE: // Some Field Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES); break; case SPACE_LOWER: // some field name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES); break; case SPACE_UPPER: // SOME FIELD NAME gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES); break; case DASH_CAMELCASE: // some-Field-Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES); break; case DASH_UPPER_CAMELCASE: // Some-Field-Name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES); break; case DASH_LOWER: // some-field-name gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES); break; case DASH_UPPER: // SOME-FIELD-NAME gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES); break; default: gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.IDENTITY); break; } if (getPrettyPrinting() && getIndentation() > 0) { gsonBuilder.setPrettyPrinting(); } gsonBuilder.setDateFormat(options.getSimpleDateFormat()); Set<FieldMapper> mappers = getFieldMappers(); Map<Class, ClassMapper> classMappers = getClassMappers(); List<ExclusionStrategy> strategies = new ArrayList<>(); if (mappers != null) { gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() { @Override public String translateName(Field f) { String fieldName = f.getName(); String serializedName = java2Json(f); if (!fieldName.equalsIgnoreCase(serializedName)) { // if null returned, this field is ignored return serializedName; } return json2Java(f); } }); for (FieldMapper mapper : mappers) { if (mapper.java == null || mapper.json == null || mapper.ignore) { strategies.add(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes f) { String name = f.getName(); Class cls = f.getClass(); if (mapper.java == null) { if (mapper.json.equals(name)) { if (mapper.getType() == null || cls.equals(mapper.getType())) { return true; } } } else if (mapper.json == null || mapper.ignore) { if (mapper.java.equals(name)) { if (mapper.getType() == null || cls.equals(mapper.getType())) { return true; } } } return false; } @Override public boolean shouldSkipClass(Class<?> clazz) { return false; } }); } } } if (classMappers != null) { for (Entry<Class, ClassMapper> entry : classMappers.entrySet()) { ClassMapper mapper = entry.getValue(); if (mapper.getType() == null) { mapper.setType(entry.getKey()); } if (mapper.ignore != null && mapper.ignore) { strategies.add(new ExclusionStrategy() { @Override public boolean shouldSkipField(FieldAttributes f) { return false; } @Override public boolean shouldSkipClass(Class<?> clazz) { if (clazz.equals(mapper.getType())) { return true; } return false; } }); } } for (Entry<Class, ClassMapper> entry : classMappers.entrySet()) { ClassMapper mapper = entry.getValue(); if (!mapper.ignore && mapper.constructor != null) { gsonBuilder.registerTypeAdapter(entry.getKey(), mapper.constructor); } } } int size = strategies.size(); if (size > 0) { gsonBuilder.setExclusionStrategies(strategies.toArray(new ExclusionStrategy[size])); } Double version = getVersion(); if (version != null) { gsonBuilder.setVersion(version); } if (isUseGsonExpose()) { gsonBuilder.excludeFieldsWithoutExposeAnnotation(); } if (!DefaultValue.isDefault(getPatterns())) { gsonBuilder.setLenient(); } gson = gsonBuilder.create(); } return gson; }
From source file:ca.ualberta.cmput301w14t08.geochan.helpers.GsonHelper.java
License:Apache License
private GsonHelper() { GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(Comment.class, new CommentJsonConverter()); builder.registerTypeAdapter(ThreadComment.class, new ThreadCommentJsonConverter()); builder.registerTypeAdapter(Bitmap.class, new BitmapJsonConverter()); builder.registerTypeAdapter(Location.class, new LocationJsonConverter()); onlineGson = builder.create();/*from w w w.ja va 2 s . co m*/ builder = new GsonBuilder(); builder.registerTypeAdapter(Comment.class, new CommentOfflineJsonConverter()); builder.registerTypeAdapter(ThreadComment.class, new ThreadCommentOfflineJsonConverter()); builder.registerTypeAdapter(Location.class, new LocationJsonConverter()); offlineGson = builder.create(); builder = new GsonBuilder(); exposeGson = builder.excludeFieldsWithoutExposeAnnotation().create(); }