2015-01-17 3 views
1

Я использую flexjson для десериализации JSON строкуDeserialize Json Объект, имеющий абстрактный класс в Java

Мои следующие классы:

public abstract class Content{ 
int id;} 

public class LoyaltyProgram{ 
Content content; 
// 
} 

Как я могу десериализации следующий объект JSON

{ "имя ":" TESTER123 "," resetFrequencyHours ":" 1 "," target ":" 5 "," totalCount ":" 5 "," content ": 138}

В настоящее время им используется код flolowing для десериализации:

new JSONDeserializer<LoyaltyProgram>() 
    .use(null, LoyaltyProgram.class).deserialize(json); 

Это проливает следующее сообщение об ошибке: [содержание]: Было исключение пытается создать экземпляр экземпляра контента

+0

Правило №. 1 из Java: вы не можете создать экземпляр абстрактного класса - и это – user1428716

ответ

0

Вы должны extend Материалов с конкретным классом.

public class SomeContent extends Content { 
} 

Сказанное, из того, что я вижу, ваш класс Content содержит только поле int. И ваш объект JSon, и ваш LoyaltyProgram, вероятно, должны принять int content вместо Content content в качестве параметра.

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