adam bien's blog

Java EE 8: converting java.util.Properties or Map into JsonObject 📎

Java EE 8 / JSON-P 1.1 come with a convenience JsonCollector, which simplifies the conversion of Properties and Maps into an JsonObject


import java.util.Properties;
import static java.util.stream.Collectors.toMap;
import javax.json.Json;
import static javax.json.Json.createValue;
import javax.json.JsonObject;
import javax.json.JsonValue;
import javax.json.stream.JsonCollectors;

//...
        
@GET
@Path("/system-properties")
public JsonObject systemProperties() {

    Properties properties = System.getProperties();
    Map<String, JsonValue> map = properties.entrySet().
            stream().
            collect(toMap(k -> k.toString(), v -> createValue(v.getValue().toString())));
    return map.entrySet().stream().collect(JsonCollectors.toJsonObject());
}    

@GET
@Path("/environment-variables")
public JsonObject environmentVariables() {
    Map<String, JsonValue> environment
            = System.getenv().
                    entrySet().
                    stream().
                    collect(toMap(Map.Entry::getKey, v -> createValue(v.getValue())));
    return environment.entrySet().stream().collect(JsonCollectors.toJsonObject());
}


The code is taken from: https://github.com/AdamBien/ping

See you at WebStandards / Microprofile / Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting. Is Munich's airport too far? Learn from home: airhacks.io.