Как я могу получить некоторые данные из файла JSON с ArrayDeque?
Я пытаюсь получить некоторые данные из файла JSON, как это.
[
{
"type": "text",
"content": "test test test",
"time": 100
},
{
"type": "text",
"content": "abcedfg",
"time": 100
},
{
"type": "text",
"content": "some data",
"time": 100
},
{
"type": "text",
"content": "1234567",
"time": 100
}
]
И определил такой класс.
class TextData {
String type;
String content;
long time;
TextData(String type, String content, long time) {
this.type = type;
this.content = content;
this.time = time;
}
}
Я пытался использовать GSON для анализа данных JSON как ArrayDeque<TextData>
как это
ArrayDeque<TextData> textDatas =
new Gson().fromJson(getJson(fileName), ArrayDeque.class);
метод getJson
получит данные файла json String
,
И это не работает. Я получаю эту ошибку.
failed to deserialize json object "" given the type class java.util.ArrayDeque
Как я могу это исправить?
1 ответ
Решение
Попробуй это
Gson gson = new Gson();
Type listType = new TypeToken<List<TextData>>() {
}.getType();
List<TextData> arralist = (List<TextData>) gson.fromJson(response, listType);
for (int i = 0; i < arralist.size(); i++) {
Log.e("Content", arralist.get(i).getContent());
Log.e("type", arralist.get(i).getType());
Log.e("time", arralist.get(i).getTime() + "");
}
модельный класс
public class TextData {
String type;
String content;
long time;
public TextData(String type, String content, long time) {
this.type = type;
this.content = content;
this.time = time;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public long getTime() {
return time;
}
public void setTime(long time) {
this.time = time;
}
}
РЕЗУЛЬТАТ