有没有一种方法可以使用Jackson JSON处理器来执行自定义字段级别的序列化?例如,我想让
public class Person {
public String name;
public int age;
public int favoriteNumber;
}
{ "name": "Joe", "age": 25, "favoriteNumber": "123" }
注意,age=25被编码为数字,而favoritenumber=123被编码为字符串。Jackson将int
编组为一个数字。在这种情况下,我希望将favoriteNumber编码为字符串。
您可以按如下方式实现自定义序列化程序:
public class Person {
public String name;
public int age;
@JsonSerialize(using = IntToStringSerializer.class, as=String.class)
public int favoriteNumber:
}
public class IntToStringSerializer extends JsonSerializer<Integer> {
@Override
public void serialize(Integer tmpInt,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException, JsonProcessingException {
jsonGenerator.writeObject(tmpInt.toString());
}
}
Java应该为您处理从int
到integer
的自动装箱。
问题内容: 我知道如何在Jackson中使用自定义序列化程序(通过扩展),但是我希望默认序列化程序可用于除1个字段之外的所有字段,我想使用自定义序列化程序覆盖该字段。 注释不是一种选择,因为我正在序列化一个生成的类(来自Thrift)。 编写自定义杰克逊序列化程序时,如何仅指定要覆盖的某些字段? 更新: 这是我要序列化的类: 上面的类有很多特质,其中大多数使用本机类型。我只想覆盖自定义序列化程序中
我正在从Xml字符串创建JavaDTO,但是字段的顺序不一样。例如Xml字符串: 转换后的Dto类似于: 有没有这样的注释,可以让我们输入如下字段的数量:
问题内容: 有没有一种使用Jackson JSON Processor进行自定义字段级序列化的方法?例如,我想上课 序列化为以下JSON: 请注意,age = 25被编码为 数字, 而favoriteNumber = 123被编码为 string 。开箱即用的杰克逊将集结到一个号码。在这种情况下,我希望将favoriteNumber编码为字符串。 问题答案: 您可以实现自定义序列化器,如下所示:
介绍 model 参考文档已经介绍了如何使用 Django 的标准字段类;例如 CharField, DateField,等等。对于很多应用来说,这些类足够用了。 但是在某些情况下, 你所用的Django 不具备你需要的某些精巧功能,或是你想使用的字段与 Django 自带字段完全不同。 Django 内置的字段类型并不能覆盖所有可能遇到的数据库的列类型,仅仅是些普通的字段类型,例如VARCHAR
我有一个表格,例如如下: 我想在特定条件下对上述数据进行排序,例如:按升序对值s2的数据进行排序,其中col2=A5,这意味着数据应按正常顺序进行排序,但如果col2='A5',则值s2的顺序应为升序或降序的行应排在第一位,如下所示。 col2='A5'中的数据应根据列values2的值按升序或降序排列。这能实现吗? 具体来说,让我们只进行排序。如果我按col2下单。行将按A1、A2、A3、A4、
问题内容: 我有这个架构: 我想用Gson序列化Data对象,并得到类似的东西: 为此,我必须对学生部分使用自定义序列化程序,以便Gson仅打印学校的ID。但是对于学校来说,我必须有正常的序列化器。 我如何只用一个Gson对象就能完成所有工作? 问题答案: 您可以编写自定义序列化器,如下所示: