2016-12-30 25 views
0

我将一个对象编组为一个对象转换为具有JSON的String属性(String actionsJSON)的JSON。这导致JSON被转义,所以我使用Jackson注解@JsonRawValue来获取该属性中的JSON不会被转义。的问题是,当我解组它放回一个String属性(的逆过程)杰克逊处理JSON(其具有JSON阵列)和引发错误作为java类属性仅仅是一个字符串:Jackson:如何将包含JSON内容的属性解压为原始字符串

Can not deserialize instance of java.lang.String out of START_ARRAY token 

我怎样才能让杰克逊只复制该属性的内容而不尝试处理它,所以我在String属性中有JSON代码,就像我在原始对象中那样?

(我已在目标类尝试@JsonRawValue,... @JsonSerialize(使用= ToStringSerializer.class,如= StringSerializer.class),但错误依然存在。

+0

你产生actionsJSON'的'内容?任何机会,你可以把它作为一个'Object',让杰克逊序列化? – GuiSim

+0

我将它手动生成为动态内容而不是rel这就是我需要@JsonRawValue的原因,所以在编组时,Jackson不会将其重新转换为JSON两次(转义它)。这个问题并不是真正的序列化,但是当我将它反序列化回String属性。 – icordoba

+0

@icordoba问题是@JsonRawValue仅用于序列化,而不是反序列化。使用Object而不是String来让Jackson序列化(和反序列化)将解决这个问题。 – GuiSim

回答

相关问题