【发布时间】:2016-05-21 16:46:54
【问题描述】:
我正在处理一个项目,我们使用javax.json 来处理我们的请求/响应。我们使用的实现是org.glassfish.json。困扰我的是它不支持添加/写入Object。所以我创建了方法,我必须检查这个实现支持的每种类型。像这样的:
private static void addTypeSafeValue(JsonObjectBuilder jsonBuilder, String key, Object value) {
if (value instanceof String) {
jsonBuilder.add(key, value.toString());
} else if (value instanceof Integer) {
jsonBuilder.add(key, (int) value);
} else if (value instanceof Boolean) {
jsonBuilder.add(key, (boolean) value);
} else if (value instanceof Long) {
jsonBuilder.add(key, (long) value);
} else if (value instanceof Double) {
jsonBuilder.add(key, (double) value);
} else if (value instanceof Uri) {
jsonBuilder.add(key, ((Uri) value).toString());
} else if (value instanceof Map) {
jsonBuilder.add(key, convertToJsonObject((Map<String, ?>) value));
} else if (value instanceof Collection) {
jsonBuilder.add(key, convertToJsonArray((Collection<?>) value));
} else if (value instanceof JsonObject) {
jsonBuilder.add(key, (JsonObject) value);
} else if (value instanceof JsonArray) {
jsonBuilder.add(key, (JsonArray) value);
} else {
throw new IllegalArgumentException("Not implemented for: " + value.getClass());
}
}
我想知道是否有任何方法可以优化此代码。
另一部分是我想为消费者传递JsonObjectBuilder 或JsonGenerator 以减少一些重复的检查/代码。
【问题讨论】:
标签: java json optimization casting