Разобрать этот формат JSON

У меня есть этот формат JSON:

["com.atlassian.greenhopper.service.sprint.Sprint@60d1cf92[id=636,rapidViewId=69,state=CLOSED,name=ABC-1,startDate=2016-07-18T08:22:00.000-04:00,endDate=2016-07-29T04:15:00.000-04:00,completeDate=2016-08-09T10:34:24.009-04:00,sequence=636]", "com.atlassian.greenhopper.service.sprint.Sprint@461fc487[id=656,rapidViewId=69,state=ACTIVE,name=ABC-2,startDate=2016-08-09T10:42:41.342-04:00,endDate=2016-08-19T06:35:00.000-04:00,completeDate=<null>,sequence=656]"]

Я пытаюсь разобрать это с помощью Gson parse, но получаю это Expected BEGIN_OBJECT but was STRING at line 1 column 3 path $[0],

Ниже приведен фрагмент кода Java и bean-компонент Spring, используемый для анализа:

Type sprintBeanType = new TypeToken<List<SprintBean>>() {}.getType();
List<SprintBean> sprintBeanList = gson.fromJson(json, sprintBeanType);

public class SprintBean{
    @Expose
    private String sprint;

    public String getSprint() {
        return sprint;
    }

    public void setSprint(String sprint) {
        this.sprint = sprint;
    }

}

Любая помощь в разборе этого JSON высоко ценится.

1 ответ

Ваши данные в формате JSON выглядят так, как будто это просто список строк, поэтому их можно проанализировать в виде List<String> заменив тип универсальный и список типа var на List<String>:

Type sprintStringType = new TypeToken<List<String>>() {}.getType();
List<String> sprintStringList = gson.fromJson(json, sprintStringType);

Однако это только анализирует базовые данные JSON в строки, "внутренние" данные не будут анализироваться. Кроме того, вы вряд ли сможете проанализировать каждую строку с помощью GSON, поскольку она не является действительными данными JSON.

Другие вопросы по тегам