Fix json parse for android 9

fongmi
FongMi 4 days ago
parent 4935e547dc
commit b49287e857
  1. 4
      app/src/main/java/com/fongmi/android/tv/api/config/BaseConfig.java
  2. 3
      app/src/main/java/com/fongmi/android/tv/api/config/LiveConfig.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/api/config/VodConfig.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/api/parser/LiveParser.java
  5. 3
      app/src/main/java/com/fongmi/android/tv/player/ParseJob.java
  6. 3
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  7. 12
      catvod/src/main/java/com/github/catvod/utils/Json.java

@ -14,10 +14,10 @@ import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.bean.Header;
import com.github.catvod.bean.Proxy;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.InterruptedIOException;
import java.util.List;
@ -128,7 +128,7 @@ abstract class BaseConfig {
private JsonArray fetch(String url) {
try {
JsonElement parsed = JsonParser.parseString(OkHttp.string(UrlUtil.convert(url)));
JsonElement parsed = Json.parse(OkHttp.string(UrlUtil.convert(url)));
return parsed.isJsonArray() ? parsed.getAsJsonArray() : new JsonArray();
} catch (Exception e) {
return new JsonArray();

@ -22,7 +22,6 @@ import com.github.catvod.bean.Header;
import com.github.catvod.bean.Proxy;
import com.github.catvod.utils.Json;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.Collections;
@ -116,7 +115,7 @@ public class LiveConfig extends BaseConfig {
@Override
protected void load(Config config) throws Throwable {
String json = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG);
if (Json.isObj(json)) checkJson(config, JsonParser.parseString(json).getAsJsonObject());
if (Json.isObj(json)) checkJson(config, Json.parse(json).getAsJsonObject());
else parseText(config, json);
}

@ -19,7 +19,6 @@ import com.github.catvod.bean.Header;
import com.github.catvod.bean.Proxy;
import com.github.catvod.utils.Json;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.Collections;
@ -113,7 +112,7 @@ public class VodConfig extends BaseConfig {
@Override
protected void load(Config config) throws Throwable {
String json = Decoder.getJson(UrlUtil.convert(config.getUrl()), TAG);
checkJson(config, JsonParser.parseString(json).getAsJsonObject());
checkJson(config, Json.parse(json).getAsJsonObject());
}
@Override

@ -11,7 +11,6 @@ import com.fongmi.android.tv.bean.Live;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.google.gson.JsonParser;
import java.util.HashMap;
import java.util.Map;
@ -303,8 +302,8 @@ public class LiveParser {
private void header(String line) {
try {
if (line.contains("#EXTHTTP:")) header.putAll(Json.toMap(JsonParser.parseString(line.split("#EXTHTTP:")[1].trim())));
if (line.contains("header=")) header.putAll(Json.toMap(JsonParser.parseString(line.split("header=")[1].trim())));
if (line.contains("#EXTHTTP:")) header.putAll(Json.toMap(Json.parse(line.split("#EXTHTTP:")[1].trim())));
if (line.contains("header=")) header.putAll(Json.toMap(Json.parse(line.split("header=")[1].trim())));
} catch (Exception e) {
e.printStackTrace();
}

@ -20,7 +20,6 @@ import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.HashMap;
@ -116,7 +115,7 @@ public class ParseJob implements ParseCallback {
private void jsonParse(Parse item, String webUrl, boolean fatal) throws Exception {
try (Response res = OkHttp.newCall(item.getUrl() + webUrl, item.getHeader()).execute()) {
JsonObject object = JsonParser.parseString(res.body().string()).getAsJsonObject();
JsonObject object = Json.parse(res.body().string()).getAsJsonObject();
String url = Json.safeString(object, "url");
JsonObject data = object.getAsJsonObject("data");
if (url.isEmpty()) url = Json.safeString(data, "url");

@ -27,7 +27,6 @@ import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.impl.CustomTarget;
import com.github.catvod.utils.Json;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonParser;
import java.util.Collections;
import java.util.HashSet;
@ -95,7 +94,7 @@ public class ImgUtil {
}
private static void addHeader(LazyHeaders.Builder builder, String header) {
Map<String, String> map = Json.toMap(JsonParser.parseString(header));
Map<String, String> map = Json.toMap(Json.parse(header));
for (Map.Entry<String, String> entry : map.entrySet()) builder.addHeader(UrlUtil.fixHeader(entry.getKey()), entry.getValue());
}

@ -16,6 +16,14 @@ import java.util.Map;
public class Json {
public static JsonElement parse(String json) {
try {
return Json.parse(json);
} catch (Throwable e) {
return new JsonParser().parse(json);
}
}
public static boolean isObj(String text) {
try {
if (TextUtils.isEmpty(text)) return false;
@ -71,7 +79,7 @@ public class Json {
public static JsonObject safeObject(JsonElement element) {
try {
if (element.isJsonPrimitive()) element = JsonParser.parseString(element.getAsJsonPrimitive().getAsString());
if (element.isJsonPrimitive()) element = parse(element.getAsJsonPrimitive().getAsString());
return element.getAsJsonObject();
} catch (Exception e) {
return new JsonObject();
@ -79,7 +87,7 @@ public class Json {
}
public static Map<String, String> toMap(String json) {
return TextUtils.isEmpty(json) ? null : toMap(JsonParser.parseString(json));
return TextUtils.isEmpty(json) ? null : toMap(parse(json));
}
public static Map<String, String> toMap(JsonElement element) {

Loading…
Cancel
Save