Próbuję uczynić właściwość w klasie domeny ukrytą, ale nadal pojawia się w wyjściowym JSON. Używam Jackson 2.0 i wiosna 3.1.1Adnotacje Jacksona są ignorowane na wiosnę
wyjściu/Users/1:
{"id":1,"password":null,"email":"[email protected]","firstName":"John","lastName":"Smith"}
Moja klasa domeny:
@Entity
public class User {
private String mPassword;
...
@JsonIgnore
public String getPassword() {
return mPassword;
}
public void setPassword(String password) {
mPassword = password;
}
...
}
Moja springmvc config:
...
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="favorPathExtension" value="true" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="defaultContentType" value="application/json"/>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
...
I mój kontroler:
@Controller
@RequestMapping("/users")
public class UserController {
private UserService mUserService;
public UserController(){}
@Inject
public void setUserController(UserService userService){
mUserService=userService;
}
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public void getUser(@PathVariable("id") long id, Model model){
model.addAttribute(mUserService.getUser(id));
}
}
Myślę, że po prostu przejdę na wersję Jackson 1.9, która wydaje się rozwiązać mój problem. –
Chyba, że potrzebujesz funkcji od 2.0 (takich jak przekazywanie obiektów z dwukierunkowymi relacjami). Właśnie dlatego uaktualniłem do wersji 2.0. –