通常我们在Jackson中打印一个类作为JSON对象的方法是定义getter和setter,如
public class MyClass
{
private Integer a;
private Integer b;
public myClass(Integer a, Integer b)
{
this.a = a;
this.b = b;
}
@JsonProperty
public Integer getA()
{
return a;
}
@JsonProperty
public Integer getB()
{
return b;
}
public void setA(Integer a)
{
this.a = a;
}
public void setB(Integer b)
{
this.b = b;
}
}
这将返回{"a":1,"b":2}
但是我可以获得{1:2}
的输出而不是之前的输出吗?
答案 0 :(得分:0)
为了实现这一点,您需要编写自己的代码并相应地传递。但是您显示的输出是标准的json格式,您无法更改,但绝对可以使用代码更改它。
答案 1 :(得分:0)
如果您不关心输出JSON
无效,则可以为POJO
类编写自定义序列化程序。它看起来像这样:
class MyClassJsonSerializer extends JsonSerializer<MyClass> {
@Override
public void serialize(MyClass myClass, JsonGenerator generator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
generator.writeStartObject();
generator.writeRaw(myClass.getA() + ":" + myClass.getB());
generator.writeEndObject();
}
}
使用:
@JsonSerialize(using = MyClassJsonSerializer.class)
class MyClass {
....
}
从现在起,您的POJO
应序列化为所需的输出。