Fix json problem

pull/262/head^2
FongMi 2 years ago
parent a32b4d0944
commit bea041136f
  1. 7
      app/src/main/java/com/fongmi/android/tv/gson/FilterAdapter.java
  2. 3
      app/src/main/java/com/fongmi/android/tv/player/ParseJob.java
  3. 4
      catvod/src/main/java/com/github/catvod/utils/Json.java

@ -11,6 +11,7 @@ import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class FilterAdapter implements JsonDeserializer<LinkedHashMap<String, List<Filter>>> {
@ -19,12 +20,12 @@ public class FilterAdapter implements JsonDeserializer<LinkedHashMap<String, Lis
LinkedHashMap<String, List<Filter>> filterMap = new LinkedHashMap<>();
JsonObject filters = json.getAsJsonObject();
if (filters == null) return filterMap;
for (String key : filters.keySet()) {
for (Map.Entry<String, JsonElement> entry : filters.entrySet()) {
List<Filter> items = new ArrayList<>();
JsonElement element = filters.get(key);
JsonElement element = filters.get(entry.getKey());
if (element.isJsonObject()) items.add(Filter.objectFrom(element).check().trans());
else for (JsonElement item : element.getAsJsonArray()) items.add(Filter.objectFrom(item).check().trans());
filterMap.put(key, items);
filterMap.put(entry.getKey(), items);
}
return filterMap;
}

@ -11,6 +11,7 @@ import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.google.common.net.HttpHeaders;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import java.util.ArrayList;
@ -187,7 +188,7 @@ public class ParseJob implements ParseCallback {
private Map<String, String> getHeader(JsonObject object) {
Map<String, String> headers = new HashMap<>();
for (String key : object.keySet()) if (key.equalsIgnoreCase(HttpHeaders.USER_AGENT) || key.equalsIgnoreCase(HttpHeaders.REFERER)) headers.put(UrlUtil.fixHeader(key), object.get(key).getAsString());
for (Map.Entry<String, JsonElement> entry : object.entrySet()) if (entry.getKey().equalsIgnoreCase(HttpHeaders.USER_AGENT) || entry.getKey().equalsIgnoreCase(HttpHeaders.REFERER)) headers.put(UrlUtil.fixHeader(entry.getKey()), object.get(entry.getKey()).getAsString());
if (headers.isEmpty()) return parse.getHeaders();
return headers;
}

@ -72,14 +72,14 @@ public class Json {
public static Map<String, String> toMap(JsonElement element) {
Map<String, String> map = new HashMap<>();
JsonObject object = safeObject(element);
for (String key : object.keySet()) map.put(key, safeString(object, key));
for (Map.Entry<String, JsonElement> entry : object.entrySet()) map.put(entry.getKey(), safeString(object, entry.getKey()));
return map;
}
public static ArrayMap<String, String> toArrayMap(JsonElement element) {
ArrayMap<String, String> map = new ArrayMap<>();
JsonObject object = safeObject(element);
for (String key : object.keySet()) map.put(key, safeString(object, key));
for (Map.Entry<String, JsonElement> entry : object.entrySet()) map.put(entry.getKey(), safeString(object, entry.getKey()));
return map;
}

Loading…
Cancel
Save