在杰克逊中将一个字段从字符串更改为json对象

阿披耶

我有一个employeeDetails从JSON字符串从数据存储中读取的类

public class Employee {
  private String name;

  @JsonProperty("employeeDetails")
  @JsonSerialize(???)
  private String employeeDetailsBlob;

  // getters and setters
}

现在,我想在响应中返回employeeDetails(动态类型)作为一个对象。我已使用更改了名称,@JsonProperty而我拥有的所有示例均已使用@JsonSerialize(using = Employee.class)

所以我的回应应该像这样

{name: "foo", employeeDetails: { age: 21 }}

我得到的是

{name: "foo", employeeDetails: "{ age: 21 }"}

我可以添加@JsonSerialize到类中,但是然后我必须自己处理所有字段,并在覆盖的方法中执行类似的操作。

jgen.writeFieldName("employeeDetails");
SerializedString serializedString = new SerializedString(empl.getEmployeeDetailsBlob());
jgen.writeRawValue(serializedString);

有没有一种方法可以使用注释,也只能在我要从json字符串更改为json对象的字段上使用。

阿披耶

添加@JsonRawValue就可以了。

public class Employee {
   private String name;

   @JsonProperty("employeeDetails")
   @JsonRawValue
   private String employeeDetailsBlob;

   // getters and setters
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

杰克逊转换java对象元属性作为任选在JSON字符串

如何分析领域可能是一个字符串,并且可以与杰克逊的数组

映射一个JSON字符串与杰克逊对象将抛出MismatchedInputException

基于另一个字段映射JSON字段(为一个值),使用杰克逊(这是一个键)

地图字符串使用杰克逊继承对象

转换JSON记录到LinkedHashMap的<字符串,字符串>使用杰克逊API

杰克逊解析字符串字段作为JSON

如何序列化一个列表的内容与杰克逊平坦JSON对象?

杰克逊对象映射器未从Java对象创建正确的Json字符串

使用杰克逊将Java对象转换为json字符串时重复的json属性

仅解析大JSON字符串中的一个字段

杰克逊将字符串转换为对象

杰克逊库1.x数组,如果一个元素有时只是一个字符串

R:更改为与字符串中前一个字符相同的字符

如何在iOS Swift的密码字段中将点更改为另一个字符

从Java的JSON字符串中仅检索一个字段

杰克逊ObjectCodec字符串json

杰克逊ObjectMapper writeValueAsBytes方法向已经包含反斜杠的字符串中添加另一个反斜杠

如何计算将一个字符串更改为另一字符串所需的次数?

R:将多个字符串更改为另一个字符串

VB-如果另一个字段中的字符串是“ transfer”,则更改字段ID

杰克逊从json字符串转换为Java对象导致默认对象

假设字段没有条件为空,如何告诉杰克逊忽略一个字段?

在javascript中将字符串中单词的第一个字母更改为大写

将字符串的第一个单词更改为第一个字母

将数组的字符串值更改为另一个字符串值

连接 JSON 字段中的字符串并截断最后一个字符

杰克逊的平面 JSON 用于一个字段的类/记录

将子列表更改为一个字符串