Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用root-Android解析JSON文件_Android_Json_Parsing_Callback - Fatal编程技术网

仅使用root-Android解析JSON文件

仅使用root-Android解析JSON文件,android,json,parsing,callback,Android,Json,Parsing,Callback,我还需要解析电影数据库中的JSON: [ { "iso_3166_1": "AD", "english_name": "Andorra" }, { "iso_3166_1": "AE", "english_name": "United Arab Emirates" }, 这是我的API服务: @GET("configuration/countries") Call<LanguageModel> getLanguages(

我还需要解析电影数据库中的JSON:

    [
  {
    "iso_3166_1": "AD",
    "english_name": "Andorra"
  },
  {
    "iso_3166_1": "AE",
    "english_name": "United Arab Emirates"
  }, 
这是我的API服务:

@GET("configuration/countries")
Call<LanguageModel> getLanguages(
        @Query("api_key") String apiKey);
然后,我做了这个调用,将所有的值对放到一个HashMap中:

private HashMap<String, String> initializeMapLang() {
    HashMap<String, String> tmp = new HashMap<>();
    ApiService apiService = ApiBuilder.getClient(DetailActivity.this).create(ApiService.class);
    Call<LanguageModel> call = apiService.getLanguages(BuildConfig.API_KEY);
    call.enqueue(new Callback<LanguageModel>() {
        @Override
        public void onResponse(Call<LanguageModel> call, Response<LanguageModel> response) {
            Pair<String, String> resultLang =  new Pair<>(response.body().getId(), response.body().getOriginalLanguage());
            tmp.put(resultLang.first, resultLang.second);
        }

        @Override
        public void onFailure(Call<LanguageModel> call, Throwable t) { }
    });
    return tmp;
}
private HashMap initializeMapLang(){
HashMap tmp=新的HashMap();
ApiService ApiService=ApiBuilder.getClient(DetailActivity.this).create(ApiService.class);
Call Call=apiService.getLanguages(BuildConfig.API_KEY);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
Pair resultLang=新对(response.body().getId(),response.body().getOriginalLanguage());
tmp.put(resultLang.first,resultLang.second);
}
@凌驾
public void onFailure(Call,Throwable t){}
});
返回tmp;
}

问题是我没有得到任何回应。我的模型正确吗?

您的api服务返回的是
语言模型的简单列表。改型可以为您处理此问题,您只需更改端点定义即可

@GET("configuration/countries")
Call<LanguageModel> getLanguages(
        @Query("api_key") String apiKey);
@GET(“配置/国家”)
调用getLanguages(
@查询(“api_键”)字符串(api键);

@GET(“配置/国家”)
调用getLanguages(
@查询(“api_键”)字符串(api键);
@GET("configuration/countries")
Call<LanguageModel> getLanguages(
        @Query("api_key") String apiKey);
@GET("configuration/countries")
Call<List<LanguageModel>> getLanguages(
        @Query("api_key") String apiKey);