Хорошо, так что это то, что я работаю с api, что для одного параметра JSON можно вернуть два разных типа. Поэтому я могу получать с сервера либо объект JSON, либо строку. Я довольно новичок в разработке Android, поэтому, если кто-то может объяснить мне, может быть, пример кода, как я могу справиться с этой проблемой.Android GSON POJO дополнительный синтаксический анализ поля
Примеры ответов json {video: "ID VIDEO"} или {video: {id: "ID ВИДЕО", ... дополнительные данные}}. Я посмотрел на пользовательские десеризаторы, но не могу найти пример, который легко поддается наблюдению. Должен быть простой способ решить мою проблему. В настоящее время я получаю ошибку «Прогнозную строку, но нашел НАЧАТЬ ОБЪЕКТ»
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class MyNotification {
@SerializedName("_id")
@Expose
private String Id;
@SerializedName("comment")
@Expose
private String comment;
@SerializedName("createdAt")
@Expose
private String createdAt;
@SerializedName("message")
@Expose
private String message;
@SerializedName("read")
@Expose
private Boolean read;
@SerializedName("recipient")
@Expose
private String recipient;
@SerializedName("sender")
@Expose
private User sender;
@SerializedName("type")
@Expose
private String type;
// @SerializedName("video")
// @Expose
// private String video;
/**
*
* @return
* The Id
*/
public String getId() {
return Id;
}
/**
*
* @param Id
* The _id
*/
public void setId(String Id) {
this.Id = Id;
}
/**
*
* @return
* The comment
*/
public String getComment() {
return comment;
}
/**
*
* @param comment
* The comment
*/
public void setComment(String comment) {
this.comment = comment;
}
/**
*
* @return
* The createdAt
*/
public String getCreatedAt() {
return createdAt;
}
/**
*
* @param createdAt
* The createdAt
*/
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
/**
*
* @return
* The message
*/
public String getMessage() {
return message;
}
/**
*
* @param message
* The message
*/
public void setMessage(String message) {
this.message = message;
}
/**
*
* @return
* The read
*/
public Boolean getRead() {
return read;
}
/**
*
* @param read
* The read
*/
public void setRead(Boolean read) {
this.read = read;
}
/**
*
* @return
* The recipient
*/
public String getRecipient() {
return recipient;
}
/**
*
* @param recipient
* The recipient
*/
public void setRecipient(String recipient) {
this.recipient = recipient;
}
/**
*
* @return
* The sender
*/
public User getSender() {
return sender;
}
/**
*
* @param sender
* The sender
*/
public void setSender(User sender) {
this.sender = sender;
}
/**
*
* @return
* The type
*/
public String getType() {
return type;
}
/**
*
* @param type
* The type
*/
public void setType(String type) {
this.type = type;
}
// /**
// *
// * @return
// * The video
// */
// public String getVideo() {
// return video;
// }
//
// /**
// *
// * @param video
// * The video
// */
// public void setVideo(String video) {
// this.video = video;
// }
}
и ту часть, которая крэпс из
Gson gson = new Gson();
String jsonString = String.valueOf(dataset);
Type listType = new TypeToken<List<MyNotification>>(){}.getType();
notficationsList = (List<MyNotification>) gson.fromJson(jsonString, listType);
Пожалуйста, ваш код –
Post моего код? Не совсем уверен, как это будет какая-то помощь? Вы имеете в виду мое определение POJO? –
Да, ваше определение POJO может помочь, часть Java, которая тоже выбрасывает Exception –