/** * Convert Java object to a JSON string. * * @param val Java object * @return JSON string. */ public static String toJsonString(Object val) { return toJsonString(val, false); }
/** * Clean control characters in a string. * * @param value string to escape * @return escaped version */ public static String cleanControlChars(String value) { return sanitize(value, true); }
if (replacements.containsKey(c) && contains(toEscape, c)) { builder.append(replacements.get(c)); } else {
log.put("error", JsonHelper.sanitize(throwable.getMessage() != null ? throwable.getMessage() : throwable.toString())); logger.error(JsonHelper.toJsonString(log), throwable); }else { logger.info(JsonHelper.toJsonString(log));
@Override public String format(LoggingEvent loggingEvent) { String loggerName = loggingEvent.getLoggerName(); String level = loggingEvent.getLevel().toString(); String message = loggingEvent.getMessage().toString().trim(); if(!message.startsWith("{") && !message.startsWith("[")){ message = "\"" + message + "\""; } String threadName = loggingEvent.getThreadName(); Date timeStamp = new Date(loggingEvent.getTimeStamp()); String context = Context.toJSON(); ThrowableInformation throwableInformation = loggingEvent.getThrowableInformation(); String exception = ""; if(throwableInformation != null){ exception = ",\"exception\":{\"message\":\""; Throwable throwable = throwableInformation.getThrowable(); String exceptionMessage = throwable.getMessage() != null? throwable.getMessage(): ""; //need to be careful here, sanitizing, since the message may already contain a chunk of JSON, so escaping or cleaning double quotes is not prudent:) exception += sanitize(exceptionMessage, false, '\n', '\t', '\r') + "\",\"stacktrace\":\"" + escapeControlChars(Util.getStackTraceString(throwable)) + "\"}"; } String contextJson = context != null ? ",\"context\":" + context : ""; String timestampString = this.simpleDateFormat == null ? timeStamp.toString() : simpleDateFormat.format(timeStamp); return "{\"level\":\"" + level + "\",\"timestamp\":\"" + timestampString + "\",\"thread\":\"" + threadName + "\",\"logger\":\"" + loggerName + "\",\"message\":" + message + contextJson + exception + "}" + System.getProperty("line.separator"); }
MethodType methodType = MethodType.methodType(void.class, Map.class); for(Object o : JsonHelper.toList(json)) { Map metaModelMap = (Map) o;
/** * Converts posted JSON map to a Java Map. Example JSON map: <code>{"name":"John", "age":21}</code>. * * @return Java Map converted from posted JSON string map. */ protected Map jsonMap() { checkJsonContentType(); try { return JsonHelper.toMap(getRequestString()); } catch (IOException e) { throw new WebException(e); } }
/** * Converts posted JSON maps to a Java Maps array. Example JSON map: <code>[{"name":"John", "age":21}, {"name":"Jane", "age":20}]</code>. * * @return Java Maps converted from posted JSON string maps. */ protected Map[] jsonMaps() { checkJsonContentType(); try { return JsonHelper.toMaps(getRequestString()); } catch (IOException e) { throw new WebException(e); } }
@Override public String format(LoggingEvent loggingEvent) { String loggerName = loggingEvent.getLoggerName(); String level = loggingEvent.getLevel().toString(); String message = loggingEvent.getMessage().toString().trim(); if(!message.startsWith("{") && !message.startsWith("[")){ message = "\"" + message + "\""; } String threadName = loggingEvent.getThreadName(); Date timeStamp = new Date(loggingEvent.getTimeStamp()); String context = Context.toJSON(); ThrowableInformation throwableInformation = loggingEvent.getThrowableInformation(); String exception = ""; if(throwableInformation != null){ exception = ",\"exception\":{\"message\":\""; Throwable throwable = throwableInformation.getThrowable(); String exceptionMessage = throwable.getMessage() != null? throwable.getMessage(): ""; //need to be careful here, sanitizing, since the message may already contain a chunk of JSON, so escaping or cleaning double quotes is not prudent:) exception += sanitize(exceptionMessage, false, '\n', '\t', '\r') + "\",\"stacktrace\":\"" + escapeControlChars(Util.getStackTraceString(throwable)) + "\"}"; } String contextJson = context != null ? ",\"context\":" + context : ""; String timestampString = this.simpleDateFormat == null ? timeStamp.toString() : simpleDateFormat.format(timeStamp); return "{\"level\":\"" + level + "\",\"timestamp\":\"" + timestampString + "\",\"thread\":\"" + threadName + "\",\"logger\":\"" + loggerName + "\",\"message\":" + message + contextJson + exception + "}" + System.getProperty("line.separator"); }
/** * Converts posted JSON array to a Java List. Example of a JSON array: <code>[1, 2, 3]</code>. * * @return Java List converted from posted JSON string. */ protected List jsonList() { checkJsonContentType(); try { return JsonHelper.toList(getRequestString()); } catch (IOException e) { throw new WebException(e); } }
/** * Escapes control characters in a string. * * @param value string to escape * @return escaped version * @see #escapeControlChars(String) */ public static String sanitize(String value) { return sanitize(value, false); }
/** * @return JSON representation of context. Expect a JSON object <code>"{...}"</code> if values are present, * or <code>null</code> if no values were set. */ public static String toJSON(){ Map context = contextTL.get(); return context == null || context.isEmpty() ? null : JsonHelper.toJsonString(context); } }
if (replacements.containsKey(c) && contains(toEscape, c)) { builder.append(replacements.get(c)); } else {
/** * Escapes control characters in a string. * * @param value string to escape * @return escaped version * @see #sanitize(String) */ public static String escapeControlChars(String value) { return sanitize(value, false); }
protected String toJSON() { List models = new ArrayList(); metaModelsByTableName.values().forEach(metaModel -> { List associations = new ArrayList(); metaModel.getAssociations().forEach(association -> associations.add(association.toMap())); models.add(map( MODEL_CLASS, metaModel.getModelClass().getName(), DB_TYPE, metaModel.getDbType(), DB_NAME, metaModel.getDbName(), COLUMN_METADATA, metaModel.getColumnMetadata(), ASSOCIATIONS, associations )); }); return JsonHelper.toJsonString(models,false); }
public static String sanitize(String value, boolean clean) { return sanitize(value, clean, null); }
/** * Convert Java object to a JSON string. * * @param val Java object * @return JSON string. */ public static String toJsonString(Object val) { return toJsonString(val, false); }
private static String getJson(String query, Object[] params, long time, boolean cacheHit) { return "{\"sql\":\"" + JsonHelper.sanitize(query) + "\",\"params\":[" + getParamsJson(params) + "]" + (!cacheHit ? (",\"duration_millis\":" + time ): "" ) + ",\"cache\":" + (cacheHit ? "\"hit\"" : "\"miss\"") + "}"; }
/** * @return JSON representation of context. Expect a JSON object <code>"{...}"</code> if values are present, * or <code>null</code> if no values were set. */ public static String toJSON(){ Map context = contextTL.get(); return context == null || context.isEmpty() ? null : JsonHelper.toJsonString(context); } }
private static String getParamsJson(Object[] params){ StringBuilder paramsSB = new StringBuilder(""); if (params != null) { for (int i = 0; i < params.length; i++) { if(params[i] instanceof Number){ paramsSB.append(JsonHelper.sanitize(params[i].toString())); }else if(params[i] instanceof byte[]){ paramsSB.append("\"bytes[...]\""); }else { if(params[i] == null){ paramsSB.append("null"); }else { paramsSB.append("\"").append(JsonHelper.sanitize(params[i].toString())).append("\""); } } if(i != (params.length - 1)){ paramsSB.append(","); } } } return paramsSB.toString(); }