private void renderJson()

in src/main/java/org/apache/sling/serviceusermapping/impl/MappingInventoryPrinter.java [128:165]


    private void renderJson(PrintWriter out) throws IOException {
        final List<Mapping> data = mapper.getActiveMappings();
        final Map<String, List<Mapping>> byUser = getMappingsByUser(data);
        final Map<String, List<Mapping>> byPrincipalName = getMappingsByPrincipalName(data);

        final JSONWriter w = new JSONWriter(out);
        w.object();
        w.key("title").value("Service User Mappings");
        w.key("mappingsCount").value(data.size());
        w.key("uniquePrincipalsCount").value(byPrincipalName.keySet().size());
        w.key("uniqueUsersCount").value(byUser.keySet().size());

        w.key("mappingsByPrincipal");
        w.object();
        for(Map.Entry<String, List<Mapping>> e : byPrincipalName.entrySet()) {
            w.key(e.getKey());
            w.array();
            for(Mapping m : e.getValue()) {
                asJSON(w,m);
            }
            w.endArray();
        }
        w.endObject();

        w.key("mappingsByUser (deprecated)");
        w.object();
        for(Map.Entry<String, List<Mapping>> e : byUser.entrySet()) {
            w.key(e.getKey());
            w.array();
            for(Mapping m : e.getValue()) {
                asJSON(w,m);
            }
            w.endArray();
        }
        w.endObject();

        w.endObject();
    }