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.
89 lines
2.3 KiB
89 lines
2.3 KiB
/*
|
|
* Copyright (c) 2004-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
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;
|
|
}
|
|
}
|