Q:

Jackson JSON mapping of superclass value

I am using Jackson 1.8.3 in a Spring application to map Java Objects to JSON.
One of my Java Class (Child) extends an super class (Parent) that is part of an Libary, so I am not able to modify it. (Especially I am not able to add annotations.)
I am using @JsonAutoDetect(JsonMethod.NONE) because I need only a small set of fields from the object, instead I am using @JsonProperty.
class Parent {
  public long getId(){...};
  ...
}

@JsonAutoDetect(JsonMethod.NONE)
class Child extends Parent {

    @JsonProperty
    private String title;
}

But one of the fields I need is an field id from the superclass, but I don't know how to tell Jackson to pay attention to this field, without modifying the parent class (because I can not modify it).

A:

If you put the annotations on the getters (instead directly on the fields), you can override the getId() method (if it's not final in the superclass) and add an annotation to it.
class Parent {
  public long getId(){...};
  ...
}

@JsonAutoDetect(JsonMethod.NONE)
class Child extends Parent {

    private String title;

    @JsonProperty
    public String getTitle() {...}

    @Override
    @JsonProperty
    public long getId() {
        return super.getId();
    }
}

A:

I am not able to add annotations

You can add annotations using mix-ins.  See http://wiki.fasterxml.com/JacksonMixInAnnotations for details.
Depending on what the rest of the class feild/method structures are, another approach that might work would be to configure visibility access of fields/methods through ObjectMapper.  The following line demonstrates how to make such a configuration, not necessarily the specific configuration you need.
mapper.setVisibilityChecker(mapper.getVisibilityChecker().withFieldVisibility(Visibility.ANY));

I am using @JsonAutoDetect(JsonMethod.NONE) because I need only a small set of fields from the object, instead I am using @JsonProperty

I should have realized that was possible.  I have to update my blog post.  Thank you.

