Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
使用retforit从嵌套的json扩展API中提取数据_Json_Api_Get_Retrofit - Fatal编程技术网

使用retforit从嵌套的json扩展API中提取数据

使用retforit从嵌套的json扩展API中提取数据,json,api,get,retrofit,Json,Api,Get,Retrofit,我有一个嵌套的JSON扩展。我正在尝试通过改造获得数据,但没有成功。我将API放在下面。我认为这个API正在输出php(如果ıknow false,您可以警告我)。如果我的URL只包含json扩展,我可以获取数据,但我不知道如何使用这个URL。 我哪里出错了?你能提供一些信息吗 //地区API: 公共类区域模型{ @序列化名称(“strArea”) 公共字符串strArea; } 公共接口区{ @获取(“list.php?a”) 调用getData(); } 公共类MainActivity扩展了

我有一个嵌套的JSON扩展。我正在尝试通过改造获得数据,但没有成功。我将API放在下面。我认为这个API正在输出php(如果ıknow false,您可以警告我)。如果我的URL只包含json扩展,我可以获取数据,但我不知道如何使用这个URL。 我哪里出错了?你能提供一些信息吗

//地区API:

公共类区域模型{
@序列化名称(“strArea”)
公共字符串strArea;
}
公共接口区{
@获取(“list.php?a”)
调用getData();
}
公共类MainActivity扩展了AppCompatActivity{
文本视图区域标题;
ArrayList区域模型;
专用字符串base_URL=”https://www.themealdb.com/api/json/v1/1/";
改造;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
regionTitle=findViewById(R.id.regionTitle);
//贝尔盖皮:https://www.themealdb.com/api/json/v1/1/list.php?a=list
//***改进Ve-JSON***
Gson Gson=new GsonBuilder().setLenient().create();//Gson objesi9
改装=新改装.Builder()
.baseUrl(基本URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
loadData();
}
私有void loadData()
{
RegionAPI RegionAPI=reformation.create(RegionAPI.class);
Call Call=regionAPI.getData();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.issusccessful())
{
List responseList=response.body();
regionModels=新的ArrayList(responseList);
对于(RegionModel RegionModel:regionModels)
{
System.out.println(regionModel.strArea);
}
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
t、 printStackTrace();
}
});
}
}

“我认为这个API输出的是php”-如果你是这个意思,那么你提供的链接输出的是json,而不是php?是的,我是这个意思,但实际上我知道这不是真的。但是我可以使用API获取数据。谢谢你的回答。我删除了php标记,因为这个问题与php没有任何关系(任何语言都可以返回该数据,因此与问题无关)。你是对的。我认为我没有使用嵌套的json扩展正确定义数据,这可能是问题的原因。@MagnusEriksson
public class RegionModel {
    @SerializedName("strArea")
    public String strArea;
}

public interface RegionAPI {

    @GET("list.php?a")
    Call<List<RegionModel>> getData();
}

public class MainActivity extends AppCompatActivity {

    TextView regionTitle;
    ArrayList<RegionModel> regionModels;
    private  String base_URL= "https://www.themealdb.com/api/json/v1/1/";
    Retrofit retrofit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        regionTitle=findViewById(R.id.regionTitle);

        //BölgeAPI: https://www.themealdb.com/api/json/v1/1/list.php?a=list

        //***Retrofit Ve JSON***
        Gson gson = new GsonBuilder().setLenient().create();//gson objesi9
        retrofit = new Retrofit.Builder()
                .baseUrl(base_URL)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
        loadData();
    }
    private  void loadData()
    {
        RegionAPI regionAPI = retrofit.create(RegionAPI.class);
        Call<List<RegionModel>> call = regionAPI.getData();
        call.enqueue(new Callback<List<RegionModel>>() {
            @Override
            public void onResponse(Call<List<RegionModel>> call, Response<List<RegionModel>> response) {
                if(response.isSuccessful())
                {
                    List<RegionModel> responseList=response.body();
                    regionModels = new ArrayList<>(responseList);
                    for(RegionModel regionModel : regionModels)
                    {
                        System.out.println(regionModel.strArea);
                    }
                }
            }
            @Override
            public void onFailure(Call<List<RegionModel>> call, Throwable t) {
                t.printStackTrace();
            }
        });
    }
}