我想创建相当于以下的杰克逊映射:
{\"isDone\": true}
Run Code Online (Sandbox Code Playgroud)
我想我需要创建一个这样的类:
public class Status {
private boolean isDone;
public boolean isDone{
return this.isDone;
}
public void setDone(boolean isDone){
this.isDone = isDone;
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何实现它然后将JSON写入字符串?
你的榜样和杰克逊的一个问题是JSON属性名的默认选择:杰克逊将看到isDone与setDone和选择done的JSON属性名.您可以使用JsonProperty注释覆盖此默认选项:
public class Status
{
private boolean isDone;
@JsonProperty("isDone")
public boolean isDone()
{
return this.isDone;
}
@JsonProperty("isDone")
public void setDone(boolean isDone)
{
this.isDone = isDone;
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
Status instance = new Status();
String jsonString = null;
instance.setDone(true);
ObjectMapper mapper = new ObjectMapper();
jsonString = mapper.writeValueAsString(instance);
Run Code Online (Sandbox Code Playgroud)
现在jsonString包含{ "isDone" : true }.请注意,您还可以写入字符串到OutputStream使用ObjectMapper.writeValue(OutputStream中,对象),或者一个Writer使用ObjectMapper.writeValue(作家,对象).
在这种情况下,您实际上只需要JsonProperty在任一访问器上注释,但不能同时需要两者.只需注释即可isDone获得所需的JSON属性名称.
使用JsonProperty注释的替代方法是重命名访问者setIsDone/getIsDone.然后注释是不必要的.
快速而肮脏的杰克逊教程:杰克逊在5分钟内完成.通过查看杰克逊注释的文档来了解特定属性.
| 归档时间: |
|
| 查看次数: |
16286 次 |
| 最近记录: |