Подмена информации о типе при сериализации Object to JSON (JACKSON)

0
02 июл 2015 04:01
Всем привет.
Есть такой вопрос, при сериализации необходимо подменять информацию о типе у некоторых объектов.
ObjectMapper objectMapper = new ObjectMapper().enableDefaultTyping(ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE);

При использовании этого мапера получаю примерно следующий JSON
[["ImportClass",
{
	"nameClass": "TestClass2",
	"fields": ["java.util.HashSet",
	["field4",
	"field3",
	"field2",
	"field1"]]
}],
["ImportClass",
{
	"nameClass": "TestClass",
	"fields": ["java.util.HashSet",
	["field4",
	"field3",
	"field2",
	"field1"]]
}]]

Есть ли возможность, не прибегая к аннотация заменить тип "ImportClass" на какой то другой? например на "Тест", что бы в итоге получилось
[["Test",
{
	"nameClass": "TestClass2",
	"fields": ["java.util.HashSet",
	["field4",
	"field3",
	"field2",
	"field1"]]
}],
["Test",
{
	"nameClass": "TestClass",
	"fields": ["java.util.HashSet",
	["field4",
	"field3",
	"field2",
	"field1"]]
}]]

Заранее спасибо.

P.S.
Вариант с изменение получившейся строки с помощью replaceAll не предлагать :-)

Ответов: 2

0
23 окт 2015 09:09
попробуй через gson там вроде получалось сохранить как один класс а загрузить другой.
0
02 июл 2015 05:26
http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/ObjectMapper.DefaultTypeResolverBuilder.html

Только не очень понятно зачем вам это. Сначала использовать DefaultTyping, а потом подменять его результаты - что-то вы странное делаете. Честно сказать я вообще не встречал случаев когда он прямо таки необходим... :)
Модераторы: Нет
Сейчас эту тему просматривают: Нет