Разобрать этот формат 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.