Я пытаюсь разобрать мои JSON в мои Java с Retrofit - PullRequest
0 голосов
/ 15 апреля 2020

Я попробовал чей-то учебник, чтобы разобрать JSON в Java, используя модификацию.

Я меняю URL в учебнике на мой http://umkmkabupatenmalang.xyz/api/config/. Но когда я пытаюсь запустить его на Android, я получаю такую ​​ошибку

enter image description here

, это моя основная активность. java

import ... 

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private ArrayList<AndroidVersion> data;
    private DataAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        view();
    }

    private void view(){
        recyclerView = (RecyclerView)findViewById(R.id.card_recycler_view);
        recyclerView.setHasFixedSize(true);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(layoutManager);
        loadJSON();
    }

    private void loadJSON(){
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://umkmkabupatenmalang.xyz/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        RequestInterface request = retrofit.create(RequestInterface.class);
        Call<JSONResponse> call = request.getJSON();
        call.enqueue(new Callback<JSONResponse>() {
            @Override
            public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
                JSONResponse jsonResponse = response.body();
                data = new ArrayList<>(Arrays.asList(jsonResponse.getAndroid()));
                adapter = new DataAdapter(data);
                recyclerView.setAdapter(adapter);
            }

            @Override
            public void onFailure(Call<JSONResponse> call, Throwable t) {
                Log.d("Error", t.getMessage());
            }
        });
    }
}

это мои json, которые я хочу проанализировать

enter image description here

Может кто-нибудь объяснить мне, что означает ошибка, и дать решение?

это мой JSONResponse

import com.example.skripsi.model.AndroidVersion;

public class JSONResponse {
    private AndroidVersion[] android;

    public AndroidVersion[] getAndroid() {
        return android;
    }
}

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Вы можете использовать этот веб-сайт для преобразования ваших JSON в java классов в будущем Преобразование JSON в java классов

0 голосов
/ 15 апреля 2020

В вашем JSONResponse классе вы также должны предоставить сеттера.

import com.google.gson.annotations.SerializedName;
import com.example.skripsi.model.AndroidVersion;

public class JSONResponse {
    @SerializedName("data")
    private AndroidVersion[] android;

    public AndroidVersion[] getAndroid() {
        return android;
    }

    public setAndroid(AndroidVersion[] androids){
        this.android = androids;
    }
}

Дайте мне знать, если это работает для вас.

...