我正在使用JSON Jackson从POJO转换为JSON。我正在使用
mapper.writeValueAsString(s);
工作正常。问题是我不想将所有类变量转换为JSON。任何人都知道如何做;是否有ObjectMapper
的任何函数,我们可以在其中指定不要将此类转换为JSON 。
答案 0 :(得分:3)
使用@JsonIgnore
(JavaDoc)注释要忽略的字段。
答案 1 :(得分:1)
以下是使用@JsonIgnore
和@JsonIgnoreType
忽略特定属性或忽略特定类型的所有属性的示例。
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreType;
import org.codehaus.jackson.map.ObjectMapper;
public class JacksonIgnoreFieldsDemo
{
public static void main(String[] args) throws Exception
{
ObjectMapper mapper = new ObjectMapper();
String json1 = mapper.writeValueAsString(new Bar());
System.out.println(json1); // {"a":"A"}
// input: {"a":"xyz","b":"B"}
String json2 = "{\"a\":\"xyz\",\"b\":\"B\"}";
Bar bar = mapper.readValue(json2, Bar.class);
System.out.println(bar.a); // xyz
System.out.println(bar.b); // B
System.out.println();
System.out.println(mapper.writeValueAsString(new BarContainer()));
// output: {"c":"C"}
}
}
class BarContainer
{
public Bar bar = new Bar();
public String c = "C";
}
@JsonIgnoreType
class Bar
{
public String a = "A";
@JsonIgnore
public String b = "B";
}
我的博文http://programmerbruce.blogspot.com/2011/07/gson-v-jackson-part-4.html
中列出了更多选项更新以更正复制粘贴错误。