com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: ожидалось BEGIN_OBJECT, но было STRING в строке 1 пути 3 столбца $ [0] - PullRequest
0 голосов
/ 07 ноября 2019

Привет, мое приложение, использующее оффлайн и онлайн на основе. Служба запускает 15 минут интервала времени. автоматическая выборка данных для обновления приложения. поэтому я использую фоновый сервис вызова API. Несколько раз служба при запуске все еще мое приложение зависало, я приложил полный код. пожалуйста, дайте какое-нибудь решение, почему не мое приложение упало.

      public class OdooResult extends TreeMap<String, Object> {

public String getString(String key) {
    if (isValidValue(key)) {
        return get(key).toString();
    }
    return null;
}

public Boolean getBoolean(String key) {
    if (isValidValue(key)) {
        return Boolean.valueOf(getString(key));
    }
    return false;
}

public int getInt(String key) {
    if (isValidValue(key)) {
        return getFloat(key).intValue();
    }
    return -1;
}

public Float getFloat(String key) {
    if (isValidValue(key)) {
        return Float.valueOf(getString(key));
    }
    return 0F;
}

public OdooResult getData(String key) {
    if (isValidValue(key)) {
        OdooResult data = new OdooResult();
        data.putAll((LinkedTreeMap) get(key));
        return data;
    }
    return null;
}

@SuppressWarnings("unchecked")
public <T> ArrayList<T> getArray(String key) {
    if (isValidValue(key)) {
        return (ArrayList<T>) get(key);
    }
    return new ArrayList<>();
}

public OdooRecord[] getRecords() {
    Object data = null;
    if (isValidValue("records")) {
        data = get("records");
    }
    if (isValidValue("result") && get("result") instanceof ArrayList) {
        data = get("result");
    }
    if (data != null) {
        Gson gson = new Gson();
        String recordsJSON = gson.toJson(data);
        return gson.fromJson(recordsJSON, OdooRecord[].class);
    }
    return new OdooRecord[]{};
}

protected boolean isValidValue(String key) {
    return get(key) != null;
}

}

  {
    "jsonrpc":"2.0", "method":"call", "params":{
    "model":"plantation.offers", "fields":[
    "name", "season_id", "section_id", "ryot_name_id", "plant_type_id", "crop_type_id", "offered_area", "plantation_status_id", "state"],
    "domain":[],"context":{
        "lang":"en_US", "tz":false, "uid":382, "params":{
            "action":302
        },"bin_size":true
    },"offset":0, "limit":80, "sort":""
},"id":437595789
}
...