比如
{ "a": { "type": "base", "path": "test" } }
和
{ "a": "test" }
代表相同的对象,java对象如下定义
Class A { Property a; } Class Property { String type; String path; }
irtuqstp1#
继承ParserConfig重载getDeserializer方法返回自己定义类的ObjectDeserializer
5ktev3wc2#
@YoveeFisher 这个接口貌似做不到,只能支持单一的json的token,要么string,要么object,因为接口里姚指明解析哪种token
wd2eg0qa3#
ObjectDeserializer 是个办法。参见:#1664给Property一个ObjectDeserializer,然后在deserialze里,通过parser.input拿到"test"看看是不是一个json还是单个字符串,1、如果是json,就调用JavaBeanDeserializer,走正常逻辑。2、如果是一个字符串,new出来一个Property,再new一个A,返回。
3条答案
按热度按时间irtuqstp1#
继承ParserConfig重载getDeserializer方法返回自己定义类的ObjectDeserializer
5ktev3wc2#
@YoveeFisher 这个接口貌似做不到,只能支持单一的json的token,要么string,要么object,因为接口里姚指明解析哪种token
wd2eg0qa3#
ObjectDeserializer 是个办法。
参见:#1664
给Property一个ObjectDeserializer,
然后在deserialze里,通过parser.input拿到"test"看看是不是一个json还是单个字符串,
1、如果是json,就调用JavaBeanDeserializer,走正常逻辑。
2、如果是一个字符串,new出来一个Property,再new一个A,返回。