Java 将参数传递给JsonSerialize
我有一个发送JSON的rest服务。在发送之前,我想更改一个字段,例如将Java 将参数传递给JsonSerialize,java,jackson,Java,Jackson,我有一个发送JSON的rest服务。在发送之前,我想更改一个字段,例如将n添加到pricen是一个参数,来自客户端。如何在没有AOP和反射的情况下将n传递到JsonSerializer 您可以使用SimpleModule。 创建SimpleModule并手动创建序列化程序对象,并将参数传递给构造函数。 下面是一个例子 假设我们有如下用户模型类: package com; public class User { public String getName() { return nam
n
添加到pricen
是一个参数,来自客户端。如何在没有AOP和反射的情况下将n
传递到JsonSerializer
您可以使用SimpleModule
。
创建SimpleModule
并手动创建序列化程序对象,并将参数传递给构造函数。
下面是一个例子
假设我们有如下用户模型类:
package com;
public class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
private String name;
private int number;
}
下面是自定义序列化程序类,如:
package com;
public class UserSerializer extends JsonSerializer<User>{
private String n;
public UserSerializer(String n){
this.n = n;
}
@Override
public void serialize(User user, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
if(user != null){
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("name", "Hello, "+user.getName()+" : value of n : "+n);
jsonGenerator.writeEndObject();
}
}
}
你的输出应该是这样的:
<User1 xmlns=""><name>Hello, nitin : value of n : 1111</name></User1>
你好,尼廷:n:1111的值
如果希望以json格式输出,请使用ObjectMapper
<User1 xmlns=""><name>Hello, nitin : value of n : 1111</name></User1>