«Ожидается BEGIN_ARRAY, но в пути $ STRING - PullRequest
0 голосов
/ 23 января 2019

У меня есть этот метод.

Moshi moshi = new Moshi.Builder().build();
                    Type listMyData = Types.newParameterizedType(List.class, Feed.class);
                    JsonAdapter<List<Feed>> adapter = moshi.adapter(listMyData);

                    List<Feed> feeds=adapter.fromJson(response);
                    EditText txtFeeds = getActivity().findViewById(R.id.Feeds);
                    txtFeeds.setText(feeds.get(0).getFeeds_Header());

Моя строка JSON

`[{\"id\":\"877CB447-DC39-4AAD-8B40-A85F867C595A\",\"Feeds_Header\":\"Tentative Inter-se Seniority List of Tech. Asstt.\\\/ Progress Asstt.\\\/ Inspector (Statistics)\",\"Feeds_Date\":\"2019-01-16T00:00:00\"},{\"id\":\"F69213B9-A22D-4B0D-ABA4-14C3F5755766\",\"Feeds_Header\":\"Recruitment of 1 post of Vigyan Mandir Officer (VMO) on transfer from amongst Lecturers of Science\",\"Feeds_Date\":\"2019-01-11T00:00:00\"}]`

Строка JSON извлекается из WebAPI, я пробовал в Gson, Jackson и Moshi, но не смог разрешить.

Но когда я объявляю строковую переменную и инициализирую ее строкой json, она отлично работает.

String json = "[{\"id\":\"877CB447-DC39-4AAD-8B40-A85F867C595A\",\"Feeds_Header\" ...

Это мой класс Feed

public class Feed {

    @SerializedName("id")
    @Expose
    private String id;
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @SerializedName("Feeds_Header")
    @Expose
    private String Feeds_Header;
    public String getFeeds_Header() {
        return Feeds_Header;
    }

    public void setFeeds_Header(String feedsHeader) {
        this.Feeds_Header = feedsHeader;
    }

    @SerializedName("Feeds_Date")
    @Expose
    private String Feeds_Date;
    public String getFeeds_Date() {
        return Feeds_Date;
    }

    public void setFeeds_Date(String feedsDate) {
        this.Feeds_Date = feedsDate;
    }

}

1 Ответ

0 голосов
/ 23 января 2019

Во время анализа вы анализируете строку, которая на самом деле является массивом.Поэтому подтвердите ответ и сделайте ваши классы POJO соответственно

...