Files
rr3-apk/decompiled/sources/com/google/android/gms/common/util/JsonUtils.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

156 lines
5.5 KiB
Java

package com.google.android.gms.common.util;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.gms.common.annotation.KeepForSdk;
import com.google.android.gms.common.internal.Preconditions;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@KeepForSdk
/* loaded from: classes2.dex */
public final class JsonUtils {
private static final Pattern zza = Pattern.compile("\\\\.");
private static final Pattern zzb = Pattern.compile("[\\\\\"/\b\f\n\r\t]");
private JsonUtils() {
}
@KeepForSdk
public static boolean areJsonValuesEquivalent(@Nullable Object obj, @Nullable Object obj2) {
if (obj == null && obj2 == null) {
return true;
}
if (obj == null || obj2 == null) {
return false;
}
if ((obj instanceof JSONObject) && (obj2 instanceof JSONObject)) {
JSONObject jSONObject = (JSONObject) obj;
JSONObject jSONObject2 = (JSONObject) obj2;
if (jSONObject.length() != jSONObject2.length()) {
return false;
}
Iterator<String> keys = jSONObject.keys();
while (keys.hasNext()) {
String next = keys.next();
if (!jSONObject2.has(next)) {
return false;
}
try {
Preconditions.checkNotNull(next);
} catch (JSONException unused) {
}
if (!areJsonValuesEquivalent(jSONObject.get(next), jSONObject2.get(next))) {
return false;
}
}
return true;
}
if (!(obj instanceof JSONArray) || !(obj2 instanceof JSONArray)) {
return obj.equals(obj2);
}
JSONArray jSONArray = (JSONArray) obj;
JSONArray jSONArray2 = (JSONArray) obj2;
if (jSONArray.length() != jSONArray2.length()) {
return false;
}
for (int i = 0; i < jSONArray.length(); i++) {
if (!areJsonValuesEquivalent(jSONArray.get(i), jSONArray2.get(i))) {
return false;
}
}
return true;
}
@Nullable
@KeepForSdk
public static String escapeString(@Nullable String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
Matcher matcher = zzb.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();
}
@NonNull
@KeepForSdk
public static String unescapeString(@NonNull String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
String zza2 = zzc.zza(str);
Matcher matcher = zza.matcher(zza2);
StringBuffer stringBuffer = null;
while (matcher.find()) {
if (stringBuffer == null) {
stringBuffer = new StringBuffer();
}
char charAt = matcher.group().charAt(1);
if (charAt == '\"') {
matcher.appendReplacement(stringBuffer, "\"");
} else if (charAt == '/') {
matcher.appendReplacement(stringBuffer, "/");
} else if (charAt == '\\') {
matcher.appendReplacement(stringBuffer, "\\\\");
} else if (charAt == 'b') {
matcher.appendReplacement(stringBuffer, "\b");
} else if (charAt == 'f') {
matcher.appendReplacement(stringBuffer, "\f");
} else if (charAt == 'n') {
matcher.appendReplacement(stringBuffer, "\n");
} else if (charAt == 'r') {
matcher.appendReplacement(stringBuffer, "\r");
} else {
if (charAt != 't') {
throw new IllegalStateException("Found an escaped character that should never be.");
}
matcher.appendReplacement(stringBuffer, "\t");
}
}
if (stringBuffer == null) {
return zza2;
}
matcher.appendTail(stringBuffer);
return stringBuffer.toString();
}
}