Example usage for com.google.gson GsonBuilder registerTypeAdapter

List of usage examples for com.google.gson GsonBuilder registerTypeAdapter

Introduction

In this page you can find the example usage for com.google.gson GsonBuilder registerTypeAdapter.

Prototype

@SuppressWarnings({ "unchecked", "rawtypes" })
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) 

Source Link

Document

Configures Gson for custom serialization or deserialization.

Usage

From source file:de.hk.bfit.db.json.GsonHelper.java

private static Gson getGson() {
    GsonBuilder gson_builder = new GsonBuilder();
    gson_builder.registerTypeAdapter(XMLGregorianCalendar.class,
            new XMLGregorianCalendarConverter.Serializer());
    gson_builder.registerTypeAdapter(XMLGregorianCalendar.class,
            new XMLGregorianCalendarConverter.Deserializer());
    return gson_builder.create();
}

From source file:de.itomig.itopenterprise.GetItopJSON.java

License:Open Source License

/**
 * convert a json string to an ArrayList of a CMDBObject Type
 *
 * @param json string//from w  w  w . j a  v a  2  s  .  c om
 * @param T Type of data
 * @param context application context, call with =null when calling from background task
 * @param <T> Type of data
 * @return ArrayList<T> with the results, returns empty list when error or no data.
 */
public static <T> ArrayList<T> getArrayFromJson(String json, Type T, Context context) {
    ArrayList<T> list = new ArrayList<T>();

    // check for server Error
    if ((json.length() >= 12) && json.substring(0, 12).contains("SERVER_ERROR")) {
        if (context != null) {
            Toast.makeText(context, json, Toast.LENGTH_LONG).show();
        } else {
            Log.e(TAG, json);
        }
        return list;
    }
    String code = "100"; // json error code, "0" => everything is o.k.
    Log.d(TAG, "getArrayFromJson - Type=" + T.toString());

    JSONObject jsonObject = null;
    try {
        jsonObject = new JSONObject(json);
        code = jsonObject.getString("code");
        Log.d(TAG, "code=" + code);
        Log.d(TAG, "message=" + jsonObject.getString("message"));

    } catch (JSONException e) {
        Log.e(TAG, "error in getArrayFromJSON " + e.getMessage());
        Toast.makeText(context, "error in getArrayFromJSON " + e.getMessage(), Toast.LENGTH_LONG).show();
    }

    if ((jsonObject != null) && (code.trim().equals("0"))) {
        try {

            JSONObject objects = jsonObject.getJSONObject("objects");
            Iterator<?> keys = objects.keys();

            while (keys.hasNext()) {
                String key = (String) keys.next();
                Log.d(TAG, "key=" + key);
                if (objects.get(key) instanceof JSONObject) {
                    // Log.d(TAG,"obj="+objects.get(key).toString());
                    JSONObject o = (JSONObject) objects.get(key);
                    int id = o.getInt("key");
                    Log.d(TAG, "id=" + id);
                    JSONObject fields = o.getJSONObject("fields");
                    //Log.d(TAG, "fields=" + fields.toString());
                    final GsonBuilder gsonBuilder = new GsonBuilder();
                    gsonBuilder.registerTypeAdapter(ItopTicket.class, new ItopTicketDeserializer());
                    final Gson gson = gsonBuilder.create();

                    final T jf = gson.fromJson(fields.toString(), T);
                    if (jf instanceof CMDBObject) {
                        ((CMDBObject) jf).id = id;
                    }
                    list.add(jf);

                }
            }
            Log.d(TAG, "code=" + jsonObject.getString("code"));
            Log.d(TAG, "message=" + jsonObject.getString("message"));

        } catch (JSONException e) {
            Log.e(TAG, "objects = null in JSON response.");
        }
    } // endif (jsonObject != null)

    return list;

}

From source file:de.mas.telegramircbot.utils.images.ImgurUploader.java

License:Open Source License

public static String uploadImageAndGetLink(String clientID, byte[] image) throws IOException {
    URL url;//from  ww  w.j  a v a  2 s .com
    url = new URL(Settings.IMGUR_API_URL);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    String dataImage = Base64.getEncoder().encodeToString(image);
    String data = URLEncoder.encode("image", "UTF-8") + "=" + URLEncoder.encode(dataImage, "UTF-8");

    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Authorization", "Client-ID " + clientID);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

    conn.connect();
    StringBuilder stb = new StringBuilder();
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(data);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = rd.readLine()) != null) {
        stb.append(line).append("\n");
    }
    wr.close();
    rd.close();

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(ImgurResponse.class, new ImgurResponseDeserializer());
    Gson gson = gsonBuilder.create();

    // The JSON data
    try {
        ImgurResponse response = gson.fromJson(stb.toString(), ImgurResponse.class);
        return response.getLink();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return stb.toString();
}

From source file:de.skubware.opentraining.activity.create_workout.upload_exercise.UploadExerciseAsyncTask.java

License:Open Source License

public static RestAdapter getRestAdapter(Context c, JsonSerializer serializer) {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(ExerciseType.class, serializer);
    gsonBuilder.setPrettyPrinting();/*from  www  .ja v a2 s .c o m*/

    Gson gson = gsonBuilder.create();

    GsonConverter converter = new GsonConverter(gson);

    RestAdapter.Builder builder = new RestAdapter.Builder().setConverter(converter)
            .setRequestInterceptor(new RequestInterceptor() {
                @Override
                public void intercept(RequestFacade requestFacade) {
                    requestFacade.addHeader("Authorization", "Token ba1ce753f54ba3b8ee4af301f07c58628a1c01bf");
                }
            });

    String baseURL;
    if (BuildConfig.DEBUG) {
        // set different API-Endpoint for debugging
        baseURL = "http://preview.wger.de";
        // only log if debug-build
        // (otherwise auth-token appears in log)
        builder.setLog(new AndroidLog("WgerRestService")).setLogLevel(LogLevel.FULL);
    } else {
        // get the URL from preferences
        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(c);
        baseURL = settings.getString("exercise_sync_url", c.getString(R.string.pref_default_exercise_sync_url));
    }
    builder.setEndpoint(baseURL + "/api/v2/");

    return builder.build();
}

From source file:de.winniehell.battlebeavers.storage.CustomGSON.java

License:Open Source License

/** setup serialization/deserialization for given class */
private static void setupSerialization(final GsonBuilder pBuilder, final Class<?> pClass) {
    final String prefix = CustomGSON.class.getPackage().getName() + "." + pClass.getSimpleName();

    try {// w  w  w  .j  ava2 s.c o m
        pBuilder.registerTypeAdapter(pClass, Class.forName(prefix + "Serializer").newInstance());
    } catch (final Exception e) {
        Log.w(CustomGSON.class.getName(), "Could not load serializer for class " + pClass.getSimpleName());
    }
    try {
        pBuilder.registerTypeAdapter(pClass, Class.forName(prefix + "Deserializer").newInstance());
    } catch (final Exception e) {
        Log.w(CustomGSON.class.getName(), "Could not load deserializer for class " + pClass.getSimpleName());
    }
}

From source file:dev.maisentito.liburban.UrbanDictionary.java

License:Open Source License

private static Gson getDeserializer() {
    final GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Definition.class, new DefinitionDeserializer());
    builder.registerTypeAdapter(Results.class, new ResultsDeserializer());
    return builder.create();
}

From source file:dochazka.OsobyJSON.java

public OsobyJSON() {
    try {/* www .j  av  a 2  s . c om*/
        // read the json file
        FileReader reader = new FileReader(filePath);
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(Osoba.class, new OsobaDeserializer());
        gsonBuilder.registerTypeAdapter(Udalost.class, new UdalostDeserializer());
        Gson gson = gsonBuilder.create();
        //Gson gson = new Gson();
        osoby = gson.fromJson(reader, Osoba[].class);
    } catch (FileNotFoundException ex) {
        JOptionPane.showMessageDialog(null, "Soubor nebyl na?ten!", "Chyba", JOptionPane.ERROR_MESSAGE);
    }
}

From source file:donky.microsoft.aspnet.signalr.client.Connection.java

License:Open Source License

/**
 * Initializes the connection with an URL, a query string and a Logger
 * //from  ww  w . j a va2  s.  c om
 * @param url
 *            The connection URL
 * @param queryString
 *            The connection query string
 * @param logger
 *            The connection logger
 */
public Connection(String url, String queryString, Logger logger) {
    if (url == null) {
        throw new IllegalArgumentException("URL cannot be null");
    }

    if (logger == null) {
        throw new IllegalArgumentException("Logger cannot be null");
    }

    if (!url.endsWith("/")) {
        url += "/";
    }

    log("Initialize the connection", LogLevel.Information);
    log("Connection data: " + url + " - " + queryString == null ? "" : queryString, LogLevel.Verbose);

    mUrl = url;
    mQueryString = queryString;
    mLogger = logger;
    mJsonParser = new JsonParser();

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(Date.class, new DateSerializer());
    mGson = gsonBuilder.create();
    mState = ConnectionState.Disconnected;
}

From source file:edu.cmu.sv.trailscribe.controller.SynchronizationCenterController.java

License:MIT License

@Override
protected Void doInBackground(String... params) {
    List<SyncItem> syncItems = new ArrayList<SyncItem>();
    syncItems.addAll(mMapsDataSource.getAll());
    syncItems.addAll(mKmlsDataSource.getAll());

    GsonBuilder gson = new GsonBuilder();
    gson.registerTypeAdapter(ArrayList.class, new SyncItemSerializer());
    String json = gson.create().toJson(syncItems);

    mBackendFacade = (BackendFacade) new BackendFacade(endpoint, this, json);
    mBackendFacade.execute();/*w w w.j a v a  2s  . c  o m*/
    return null;
}

From source file:edu.eci.arsw.umlcolaborativo.services.InMemoryProjectsRedis.java

/**
 * Constructor de los proyectos de redis
 *//* w w  w  .j a v a 2  s.  c o m*/
public InMemoryProjectsRedis() throws ProyectoExcepcion {
    Jedis jedis = JedisUtil.getPool().getResource();
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Diagrama.class, new InterfaceAdapter<Diagrama>());
    builder.registerTypeAdapter(Elemento.class, new InterfaceAdapter<Elemento>());
    builder.registerTypeAdapter(Relacion.class, new InterfaceAdapter<Relacion>());
    gson = builder.create();
    Map<String, Proyecto> proyectos = new HashMap<>();
    Map<String, List<String>> usuarios = new HashMap<>();
    usuarios.put("1", new ArrayList<>());
    Proyecto p = new Proyecto("Proyecto1", "DEsc");
    DiagramaClases d = new DiagramaClases("Diagrama1", "eDEs");
    Elemento e = new Clase("Clase", 3, 3);
    Elemento e1 = new Clase("Clase1", 2, 2);
    Relacion r = new RelacionDependencia(e, e1, "Relacion1");
    d.agregarElemento(e);
    d.agregarElemento(e1);
    d.agregarRelacion(r);
    p.agregarDiagrama(d);
    proyectos.put(p.getNombre(), p);
    usuarios.get("1").add(p.getNombre());
    jedis.hset("Usuarios", "todosU", gson.toJson(usuarios));
    jedis.hset("Proyectos", "todosP", gson.toJson(proyectos));
    jedis.close();
}