Java 应为BEGIN_对象,但在第13行第1列路径处为字符串$

Java 应为BEGIN_对象,但在第13行第1列路径处为字符串$,java,android,gson,retrofit2,Java,Android,Gson,Retrofit2,这个问题我看了很多次,但还是不明白。看起来我在网站上发送了请求,但它的正文不正确。但是为什么呢?可能是我不清楚改造是如何工作的,但我不只是收集请求的链接并等待服务器的答复吗? 以下是链接: 与请求的接口 public interface NService { @GET("/computers?p=2") Call<Model> getItems(); } 改装建造类别 public class RetrofitClient { private static

这个问题我看了很多次,但还是不明白。看起来我在网站上发送了请求,但它的正文不正确。但是为什么呢?可能是我不清楚改造是如何工作的,但我不只是收集请求的链接并等待服务器的答复吗? 以下是链接:

与请求的接口

public interface NService {
    @GET("/computers?p=2")
    Call<Model> getItems();
}
改装建造类别

public class RetrofitClient {

    private static Retrofit retrofit = null;


    public static Retrofit getClient(String baseURL) {
        if (retrofit==null) {
            Gson gson = new GsonBuilder()
                    .setLenient()
                    .create();
            retrofit = new Retrofit.Builder()
                    .baseUrl(baseURL)
                    .addConverterFactory(GsonConverterFactory.create(gson))
                    .build();
        }
        return retrofit;
    }
}
JSON被解析了

主要活动是:

public class MainActivity extends AppCompatActivity {
    private List<Item> responseModel;
    private NService mService;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("testcrap", "before loading set");
        setContentView(R.layout.activity_main);
        mService = APIUtils.getMService(); // Строим retrofit объект, собираем ссылку
        Log.d("testcrap", "before loading");
        loadSomeCrap();
        Log.d("testcrap", "after loading");
    }

    public void loadSomeCrap() {
        Log.d("testcrap", "started parsing");
        mService.getItems().enqueue(new Callback<Model>() {

            @Override
            public void onResponse(Call<Model> call, Response<Model> response) {
                Log.d("testcrap", "started onResponse");

                if(response.isSuccessful()) {
                    Log.d("testcrap", "posts loaded from API");
                }else {
                    Log.d("testcrap", "posts not loaded from API");
                }
            }

            @Override
            public void onFailure(Call<Model> call, Throwable t) {
                //showErrorMes  sage();
                Log.d("testcrap", t.toString());

            }
        });
    }
}

所以,如果是错误的请求,我应该为正常工作更改什么?

您的API或JSON响应返回JSON_对象,但您得到的是字符串,因此显示了这个JsonSyntaxException。尝试在对象中获取响应。

您的API或JSON响应正在返回JSON_对象,但您正在以字符串形式获取它,因此显示此JsonSyntaxException。尝试在对象中获取响应。

进行这些更改

BASE_URL = "http://testwork.nsd.naumen.ru/"
然后在接口上

@GET("rest/computers?p=2")
.............

做出这些改变

BASE_URL = "http://testwork.nsd.naumen.ru/"
然后在接口上

@GET("rest/computers?p=2")
.............

模型课中的问题请通过模型课,这样我可以帮助解决模型课中的问题请通过模型课,这样我可以帮助解决