5

И.М. Ошибка при получении является «java.lang.IllegalArgumentException: класс com.activeandroid.DatabaseHelper объявляет несколько полей в формате JSON с именем mContext»Gson класс ошибки сериализации com.activeandroid.DatabaseHelper объявляет несколько полей в формате JSON с именем mContext

Я использую AndroidAnnotations RestClient для вывода данных из моего веб-сервиса и сериализации в POJO. Сериализации отлично работали при использовании ORMLite, но я недавно решил попробовать Active Android, и теперь мои классы расширяют модель. Gson сериализует родительский класс, который я не контролирую. В любом случае, я могу включать в себя только определенные поля или, может быть просто вернуть простой JSON из RestClient и сделать сериализации другой способ

@Rest(rootUrl = "http://stuff...com", converters = { GsonHttpMessageConverter.class }) 
    public interface RestClient { 
    @Get("/AndroidController/createFacebookUser?facebookToken={facebookToken}&catIds= {catIds}") 
    User createFacebookUser(String facebookToken,String catIds); 
} 

и модели пользователя является

@Data 
@Table(name = "Users") 
public class User extends Model { 
@Column(name = "SystemID") 
private String systemID; 
@Column(name = "Name") 
private String name; 
public List<GameEntry> items() { 
    return getMany(GameEntry.class, "Category"); 
} 

public User(){} 

}

ответ

3

Я создал свой собственный Serializer, который простирался AbstractHttpMessageConverter после ответа здесь

Custom HttpMessageConverter with @ResponseBody to do Json things

Единственное, что я изменил в том, что я сделал Gson и использовал @Expose на полях я хотел сериализованную

private Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); 

 Смежные вопросы

  • Нет связанных вопросов^_^