Arrays 应为BEGIN_数组,但在第1行第2列路径$22处为BEGIN_对象

Arrays 应为BEGIN_数组,但在第1行第2列路径$22处为BEGIN_对象,arrays,json,android-studio,retrofit,Arrays,Json,Android Studio,Retrofit,我想访问JSON数组。所以我创建了2个对象!!看看我的代码,网址 Url-cricapi.com/api/matches/?apikey=JimJAfsmRGOnDpCrRrqO6htlilg1 我的火柴 package com.piyushjaiswal.jsonpractis; public class MatchesArray { private Matches matches; private provider provider2; public Matche

我想访问JSON数组。所以我创建了2个对象!!看看我的代码,网址

Url-cricapi.com/api/matches/?apikey=JimJAfsmRGOnDpCrRrqO6htlilg1 我的火柴

package com.piyushjaiswal.jsonpractis;

public class MatchesArray {
    private Matches matches;

   private provider provider2;

    public MatchesArray(Matches matches, provider provider2) {
        this.matches = matches;
        this.provider2 = provider2;
    }

    public Matches getMatches() {
        return matches;
    }

    public void setMatches(Matches matches) {
        this.matches = matches;
    }

    public provider getProvider2() {
        return provider2;
    }

    public void setProvider2(provider provider2) {
        this.provider2 = provider2;
    }
}
匹配类

package com.piyushjaiswal.jsonpractis;

import com.google.gson.annotations.SerializedName;

public class Matches {
    private int unique_id;
    private String date;
    private String dateTimeGMT;
    @SerializedName("team-1")
    private String team1;
    @SerializedName("team-2")
    private String team2;
    private String type;
    private String toss_winner_team;
    private boolean squad;
    private boolean matchStarted;

    public int getUnique_id() {
        return unique_id;
    }

    public void setUnique_id(int unique_id) {
        this.unique_id = unique_id;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getDateTimeGMT() {
        return dateTimeGMT;
    }

    public void setDateTimeGMT(String dateTimeGMT) {
        this.dateTimeGMT = dateTimeGMT;
    }

    public String getTeam1() {
        return team1;
    }

    public void setTeam1(String team1) {
        this.team1 = team1;
    }

    public String getTeam2() {
        return team2;
    }

    public void setTeam2(String team2) {
        this.team2 = team2;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getToss_winner_team() {
        return toss_winner_team;
    }

    public void setToss_winner_team(String toss_winner_team) {
        this.toss_winner_team = toss_winner_team;
    }

    public boolean isSquad() {
        return squad;
    }

    public void setSquad(boolean squad) {
        this.squad = squad;
    }

    public boolean isMatchStarted() {
        return matchStarted;
    }

    public void setMatchStarted(boolean matchStarted) {
        this.matchStarted = matchStarted;
    }
}
package com.piyushjaiswal.jsonpractis;

public class provider {
    private String source;
    private String url;
    private String pubDate;

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getPubDate() {
        return pubDate;
    }

    public void setPubDate(String pubDate) {
        this.pubDate = pubDate;
    }
}
package com.piyushjaiswal.jsonpractis;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {
private TextView textView;
private JsonPlaceHolderApi jsonPlaceHolderApi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textview);

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://cricapi.com/api/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
        getMatchList();
    }

    private void getMatchList() {

        Call<List<MatchesArray>> call = jsonPlaceHolderApi.getPosts("JimJAfsmRGOnDpCrRrqO6htlilg1");
        call.enqueue(new Callback<List<MatchesArray>>() {
            @Override
            public void onResponse(Call<List<MatchesArray>> call, Response<List<MatchesArray>> response) {
                if(!response.isSuccessful()){
                    textView.setText(response.message() + "123");
                    return;
                }
               List<MatchesArray> list = response.body();
                textView.setText(list.get(0).getMatches().getDate());
            }

            @Override
            public void onFailure(Call<List<MatchesArray>> call, Throwable t) {
                textView.setText(t.getMessage() +"22");

            }
        });


    }

}
我的提供商类

package com.piyushjaiswal.jsonpractis;

import com.google.gson.annotations.SerializedName;

public class Matches {
    private int unique_id;
    private String date;
    private String dateTimeGMT;
    @SerializedName("team-1")
    private String team1;
    @SerializedName("team-2")
    private String team2;
    private String type;
    private String toss_winner_team;
    private boolean squad;
    private boolean matchStarted;

    public int getUnique_id() {
        return unique_id;
    }

    public void setUnique_id(int unique_id) {
        this.unique_id = unique_id;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getDateTimeGMT() {
        return dateTimeGMT;
    }

    public void setDateTimeGMT(String dateTimeGMT) {
        this.dateTimeGMT = dateTimeGMT;
    }

    public String getTeam1() {
        return team1;
    }

    public void setTeam1(String team1) {
        this.team1 = team1;
    }

    public String getTeam2() {
        return team2;
    }

    public void setTeam2(String team2) {
        this.team2 = team2;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getToss_winner_team() {
        return toss_winner_team;
    }

    public void setToss_winner_team(String toss_winner_team) {
        this.toss_winner_team = toss_winner_team;
    }

    public boolean isSquad() {
        return squad;
    }

    public void setSquad(boolean squad) {
        this.squad = squad;
    }

    public boolean isMatchStarted() {
        return matchStarted;
    }

    public void setMatchStarted(boolean matchStarted) {
        this.matchStarted = matchStarted;
    }
}
package com.piyushjaiswal.jsonpractis;

public class provider {
    private String source;
    private String url;
    private String pubDate;

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getPubDate() {
        return pubDate;
    }

    public void setPubDate(String pubDate) {
        this.pubDate = pubDate;
    }
}
package com.piyushjaiswal.jsonpractis;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {
private TextView textView;
private JsonPlaceHolderApi jsonPlaceHolderApi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textview);

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://cricapi.com/api/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
        getMatchList();
    }

    private void getMatchList() {

        Call<List<MatchesArray>> call = jsonPlaceHolderApi.getPosts("JimJAfsmRGOnDpCrRrqO6htlilg1");
        call.enqueue(new Callback<List<MatchesArray>>() {
            @Override
            public void onResponse(Call<List<MatchesArray>> call, Response<List<MatchesArray>> response) {
                if(!response.isSuccessful()){
                    textView.setText(response.message() + "123");
                    return;
                }
               List<MatchesArray> list = response.body();
                textView.setText(list.get(0).getMatches().getDate());
            }

            @Override
            public void onFailure(Call<List<MatchesArray>> call, Throwable t) {
                textView.setText(t.getMessage() +"22");

            }
        });


    }

}
main活动类

package com.piyushjaiswal.jsonpractis;

import com.google.gson.annotations.SerializedName;

public class Matches {
    private int unique_id;
    private String date;
    private String dateTimeGMT;
    @SerializedName("team-1")
    private String team1;
    @SerializedName("team-2")
    private String team2;
    private String type;
    private String toss_winner_team;
    private boolean squad;
    private boolean matchStarted;

    public int getUnique_id() {
        return unique_id;
    }

    public void setUnique_id(int unique_id) {
        this.unique_id = unique_id;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getDateTimeGMT() {
        return dateTimeGMT;
    }

    public void setDateTimeGMT(String dateTimeGMT) {
        this.dateTimeGMT = dateTimeGMT;
    }

    public String getTeam1() {
        return team1;
    }

    public void setTeam1(String team1) {
        this.team1 = team1;
    }

    public String getTeam2() {
        return team2;
    }

    public void setTeam2(String team2) {
        this.team2 = team2;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getToss_winner_team() {
        return toss_winner_team;
    }

    public void setToss_winner_team(String toss_winner_team) {
        this.toss_winner_team = toss_winner_team;
    }

    public boolean isSquad() {
        return squad;
    }

    public void setSquad(boolean squad) {
        this.squad = squad;
    }

    public boolean isMatchStarted() {
        return matchStarted;
    }

    public void setMatchStarted(boolean matchStarted) {
        this.matchStarted = matchStarted;
    }
}
package com.piyushjaiswal.jsonpractis;

public class provider {
    private String source;
    private String url;
    private String pubDate;

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getPubDate() {
        return pubDate;
    }

    public void setPubDate(String pubDate) {
        this.pubDate = pubDate;
    }
}
package com.piyushjaiswal.jsonpractis;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {
private TextView textView;
private JsonPlaceHolderApi jsonPlaceHolderApi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textview);

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://cricapi.com/api/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
        getMatchList();
    }

    private void getMatchList() {

        Call<List<MatchesArray>> call = jsonPlaceHolderApi.getPosts("JimJAfsmRGOnDpCrRrqO6htlilg1");
        call.enqueue(new Callback<List<MatchesArray>>() {
            @Override
            public void onResponse(Call<List<MatchesArray>> call, Response<List<MatchesArray>> response) {
                if(!response.isSuccessful()){
                    textView.setText(response.message() + "123");
                    return;
                }
               List<MatchesArray> list = response.body();
                textView.setText(list.get(0).getMatches().getDate());
            }

            @Override
            public void onFailure(Call<List<MatchesArray>> call, Throwable t) {
                textView.setText(t.getMessage() +"22");

            }
        });


    }

}
package com.piyushjaiswal.jsonpractis;
导入androidx.appcompat.app.appcompat活动;
导入android.os.Bundle;
导入android.widget.TextView;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.List;
2.电话;;
2.回拨;
2.回应;;
进口改装2.改装;
进口改装2.converter.gson.GsonConverterFactory;
公共类MainActivity扩展了AppCompatActivity{
私有文本视图文本视图;
私有JsonPlaceHolderApi JsonPlaceHolderApi;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=findViewById(R.id.textView);
改装改装=新改装.Builder()
.baseUrl(“http://cricapi.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build();
jsonPlaceHolderApi=reformation.create(jsonPlaceHolderApi.class);
getMatchList();
}
私有void getMatchList(){
Call Call=jsonPlaceHolderApi.getPosts(“jimjafsmrgondpcrrqo6htlilg1”);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
如果(!response.issusccessful()){
textView.setText(response.message()+“123”);
返回;
}
List=response.body();
textView.setText(list.get(0.getMatches().getDate());
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
textView.setText(t.getMessage()+“22”);
}
});
}
}
但屏幕截图上的输出是
“应为BEGIB_数组,但在第1行第2列patg$2处为BEGIN_对象”

您的JSON语法错误。响应以
{“matches”开头:[
,这意味着它是一个对象,参数
matches
的类型为
match[]

因此,您需要一个新类,大致如下:

public class MatchesWrapper {
    private List<Matches> matches;
}
公共类matcheswapper{
私人列表匹配;
}
并将所有的
呼叫
更改为
呼叫


您收到的错误告诉您这一点。您预期的是一个匹配的
数组(
预期的BEGIN\u数组
),但收到的是一个对象(
是BEGIN\u对象