in src/main/java/org/apache/sling/servlets/post/JSONResponse.java [135:200]
JsonObject getJson() {
JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
for (Map.Entry<String, Object> entry : json.entrySet()) {
Object value = entry.getValue();
if (value instanceof String) {
jsonBuilder.add(entry.getKey(), (String) entry.getValue());
} else if (value instanceof Boolean) {
jsonBuilder.add(entry.getKey(), (Boolean) value);
} else if (value instanceof BigInteger) {
jsonBuilder.add(entry.getKey(), (BigInteger) value);
} else if (value instanceof BigDecimal) {
jsonBuilder.add(entry.getKey(), (BigDecimal) value);
} else if (value instanceof Byte) {
jsonBuilder.add(entry.getKey(), (Byte) value);
} else if (value instanceof Short) {
jsonBuilder.add(entry.getKey(), (Short) value);
} else if (value instanceof Integer) {
jsonBuilder.add(entry.getKey(), (Integer) value);
} else if (value instanceof Long) {
jsonBuilder.add(entry.getKey(), (Long) value);
} else if (value instanceof Double) {
jsonBuilder.add(entry.getKey(), (Double) value);
} else if (value instanceof Float) {
jsonBuilder.add(entry.getKey(), (Float) value);
} else if (value == null) {
jsonBuilder.addNull(entry.getKey());
} else {
jsonBuilder.add(entry.getKey(), jsonCached.get(entry.getKey()));
}
}
if (this.error != null) {
jsonBuilder.add(
"error",
Json.createObjectBuilder()
.add("class", error.getClass().getName())
.add("message", error.getMessage()));
}
JsonArrayBuilder changesBuilder = Json.createArrayBuilder();
if (this.error == null) {
for (Map<String, Object> entry : changes) {
JsonObjectBuilder entryBuilder = Json.createObjectBuilder();
entryBuilder.add(PROP_TYPE, (String) entry.get(PROP_TYPE));
Object arguments = entry.get(PROP_ARGUMENT);
if (arguments != null) {
if (arguments instanceof List) {
JsonArrayBuilder argumentsBuilder = Json.createArrayBuilder();
for (String argument : ((List<String>) arguments)) {
if (argument != null) {
argumentsBuilder.add(argument);
}
}
entryBuilder.add(PROP_ARGUMENT, argumentsBuilder);
} else {
entryBuilder.add(PROP_ARGUMENT, (String) arguments);
}
}
changesBuilder.add(entryBuilder);
}
}
jsonBuilder.add(PROP_CHANGES, changesBuilder);
return jsonBuilder.build();
}