All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.megaport.api.util.JsonConverter Maven / Gradle / Ivy

The newest version!
package com.megaport.api.util;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by adam.wells on 22/06/2016.
 */
public class JsonConverter {

    private static JsonFactory factory = new JsonFactory();
    private static ObjectMapper mapper = new ObjectMapper(factory);
    public static TypeReference> typeRef = new TypeReference>() {};

    public static HashMap fromJson(String jsonString) {

        try {
            return mapper.readValue(new ByteArrayInputStream(jsonString.getBytes("UTF-8")), typeRef);
        } catch (IOException e) {
            return new HashMap<>();
        }

    }

    public static  List fromJsonDataAsList(String jsonString, Class typeReference) {

        List result = new ArrayList<>();

        HashMap map = fromJson(jsonString);
        if (!map.get("data").equals("[]")){
            List> list = (List>) map.get("data");
            for (Map item : list){
                result.add(fromJson(toJson(item),typeReference));
            }
        }

        return result;

    }

    public static  List fromJsonDataAsSimpleList(String jsonString, Class typeReference) {

        List result = new ArrayList<>();

        HashMap map = fromJson(jsonString);
        if (!map.get("data").equals("[]")){
            result = (List) map.get("data");
        }

        return result;

    }



    public static List> fromJsonDataAsList(String jsonString) {

        HashMap map = fromJson(jsonString);
        if (!map.get("data").equals("[]")){
            return (List>) map.get("data");
        } else {
            return new ArrayList<>();
        }

    }

    public static HashMap fromJsonDataAsMap(String jsonString) {

        HashMap map = fromJson(jsonString);
        Map item = (Map) map.get("data");

        return fromJson(toJson(item));
    }

    public static  T fromJsonDataAsObject(String jsonString, Class typeReference) {

        HashMap map = fromJson(jsonString);
        Map item = (Map) map.get("data");

        return fromJson(toJson(item),typeReference);
    }

    public static  T fromJson(String jsonString, Class typeReference) {

        try {
            return mapper.readValue(jsonString, typeReference);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    public static String toJson(Object object) {

        try {
            return mapper.writeValueAsString(object);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    public static String toJsonPretty(Object object) {

        if (object.getClass().equals(String.class)){
            object = fromJson((String)object);
        }

        try {
            return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }

    public static Map toMap(Object o){
        if (o.getClass().equals(String.class)){
            return fromJson((String) o);
        } else {
            String json = toJson(o);
            return fromJson(json);
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy