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

net.dongliu.cute.http.json.JsonMarshallers Maven / Gradle / Ivy

The newest version!
package net.dongliu.cute.http.json;

import net.dongliu.commons.Lazy;
import net.dongliu.commons.reflect.Classes;

import java.util.Optional;

/**
 * Utils for get JsonMarshaller
 */
public class JsonMarshallers {

    /**
     * Get default JsonMarshaller instance by detecting dependency.
     */
    public static Optional getJsonMarshaller() {
        return jsonMarshaller.get();
    }

    private static final Lazy> jsonMarshaller = Lazy.of(JsonMarshallers::loadJsonMarshaller);

    private static Optional loadJsonMarshaller() {
        if (Classes.exists("com.fasterxml.jackson.databind.ObjectMapper")) {
            return Optional.of(new JacksonMarshaller());
        }
        if (Classes.exists("com.google.gson.Gson")) {
            return Optional.of(new GsonMarshaller());
        }
        return Optional.empty();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy