58 lines
1.9 KiB
Java
58 lines
1.9 KiB
Java
package com.google.android.gms.common.util;
|
|
|
|
import android.text.TextUtils;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class JsonUtils {
|
|
private static final Pattern a;
|
|
|
|
static {
|
|
Pattern.compile("\\\\.");
|
|
a = Pattern.compile("[\\\\\"/\b\f\n\r\t]");
|
|
}
|
|
|
|
public static String a(String str) {
|
|
if (TextUtils.isEmpty(str)) {
|
|
return str;
|
|
}
|
|
Matcher matcher = a.matcher(str);
|
|
StringBuffer stringBuffer = null;
|
|
while (matcher.find()) {
|
|
if (stringBuffer == null) {
|
|
stringBuffer = new StringBuffer();
|
|
}
|
|
char charAt = matcher.group().charAt(0);
|
|
if (charAt == '\f') {
|
|
matcher.appendReplacement(stringBuffer, "\\\\f");
|
|
} else if (charAt == '\r') {
|
|
matcher.appendReplacement(stringBuffer, "\\\\r");
|
|
} else if (charAt == '\"') {
|
|
matcher.appendReplacement(stringBuffer, "\\\\\\\"");
|
|
} else if (charAt == '/') {
|
|
matcher.appendReplacement(stringBuffer, "\\\\/");
|
|
} else if (charAt != '\\') {
|
|
switch (charAt) {
|
|
case '\b':
|
|
matcher.appendReplacement(stringBuffer, "\\\\b");
|
|
break;
|
|
case '\t':
|
|
matcher.appendReplacement(stringBuffer, "\\\\t");
|
|
break;
|
|
case '\n':
|
|
matcher.appendReplacement(stringBuffer, "\\\\n");
|
|
break;
|
|
}
|
|
} else {
|
|
matcher.appendReplacement(stringBuffer, "\\\\\\\\");
|
|
}
|
|
}
|
|
if (stringBuffer == null) {
|
|
return str;
|
|
}
|
|
matcher.appendTail(stringBuffer);
|
|
return stringBuffer.toString();
|
|
}
|
|
}
|