You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
86 lines
2.2 KiB
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
|
|
package libraries.marauder.analytics.utils.json;
|
|
|
|
public class JsonUtils {
|
|
|
|
private static void escape(StringBuilder builder, String input) {
|
|
for (Character c : input.toCharArray()) {
|
|
if (Character.getType(c) == Character.CONTROL) {
|
|
builder.append(String.format("\\u%04x", (int)c));
|
|
} else if (c == '\\' || c== '\"') {
|
|
builder.append('\\').append(c);
|
|
} else {
|
|
builder.append(c);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static StringBuilder serialize(String input) {
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
serialize(stringBuilder, input);
|
|
return stringBuilder;
|
|
}
|
|
|
|
public static String serialize(long input) {
|
|
return String.valueOf(input);
|
|
}
|
|
|
|
public static String serialize(boolean input) {
|
|
return String.valueOf(input);
|
|
}
|
|
|
|
public static String serialize(double input) {
|
|
return String.valueOf(input);
|
|
}
|
|
|
|
public static String serialize(Object input) {
|
|
if (input instanceof Integer
|
|
|| input instanceof Float
|
|
|| input instanceof Long
|
|
|| input instanceof Double
|
|
|| input instanceof Boolean
|
|
|| input instanceof Byte
|
|
|| input instanceof Short) {
|
|
return "";//String.valueOf(input);
|
|
} else {
|
|
return "";// serialize(String.valueOf(input)).toString();
|
|
}
|
|
}
|
|
|
|
public static void serialize(StringBuilder out, String input) {
|
|
if (input == null) {
|
|
out.append("null");
|
|
} else {
|
|
out.append("\"");
|
|
escape(out, input);
|
|
out.append("\"");
|
|
}
|
|
}
|
|
|
|
public static void serialize(StringBuilder out, long input) {
|
|
out.append(serialize(input));
|
|
}
|
|
|
|
public static void serialize(StringBuilder out, boolean input) {
|
|
out.append(serialize(input));
|
|
}
|
|
|
|
public static void serialize(StringBuilder out, double input) {
|
|
out.append(serialize(input));
|
|
}
|
|
|
|
public static void serialize(StringBuilder out, Object input) {
|
|
out.append(serialize(input));
|
|
}
|
|
|
|
public static boolean isValidInputType(Object value) {
|
|
if (value instanceof JsonString ||
|
|
value instanceof JsonArray ||
|
|
value instanceof JsonMap) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|