Parse Json массив с массивом int с использованием Gson

Вопрос:

Я пытаюсь разобрать этот массив:

[{"style_image":"","count":5,"color":"red","ClusterName":"cluster1","CID":"[98,99,96,16,95]"},
{"style_image":"","count":1,"color":"red","ClusterName":"cluster2","CID":"[91]"}]

и у меня есть с "CID":"[98,99,96,16,95]" объект. Я получаю исключения JsonParseException если мой объект выглядит так:

@SerializedName("ClusterName")
private String name;
private String color;
@SerializedName("CID")
private List<Integer> levelOneIDs;
private int count;
private String style_image;

или это:

@SerializedName("ClusterName")
private String name;
private String color;
@SerializedName("CID")
private int[] levelOneIDs;
private int count;
private String style_image;

Как проанализировать объект с массивом целых чисел в объекте? Кажется, что-то достаточно легко, но я не уверен, как это сделать.

Лучший ответ:

Проблема заключается в том, что "[98,99,96,16,95]" не является JSON array-, это строка (обратите внимание на кавычки вокруг массива).

Это правильно проанализирует:

@SerializedName("CID")
private String levelOneIDs;

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

Если у вас есть какие-либо данные о том, как используемый вами API генерирует этот JSON, вы должны его обновить, чтобы вывести соответствующий массив JSON.

Оцените статью
TechArks.Ru
Добавить комментарий