나는 Gson을 배우려고 노력하고 있으며 필드 배제로 고심하고 있습니다. 여기 내 수업이 있습니다
public class Student {
private Long id;
private String firstName = "Philip";
private String middleName = "J.";
private String initials = "P.F";
private String lastName = "Fry";
private Country country;
private Country countryOfBirth;
}
public class Country {
private Long id;
private String name;
private Object other;
}
GsonBuilder를 사용하고 firstName
또는 같은 필드 이름에 ExclusionStrategy를 추가 할 수는 있지만와 같은 country
특정 필드의 속성을 제외시키는 것은 관리 할 수 없습니다 country.name
.
이 메소드를 사용하면 public boolean shouldSkipField(FieldAttributes fa)
FieldAttributes에 필터와 같은 필드를 일치시키기에 충분한 정보가 없습니다 country.name
.
추신 : 나는 이것을 개선하고 RegEx를 사용하여 필드를 필터링하기 때문에 주석을 피하고 싶습니다.
편집 : Struts2 JSON 플러그인 의 동작을 에뮬레이트 할 수 있는지 확인하려고합니다.
Gson 사용
<interceptor-ref name="json">
<param name="enableSMD">true</param>
<param name="excludeProperties">
login.password,
studentList.*\.sin
</param>
</interceptor-ref>
편집 : 다음을 추가하여 질문을 다시 열었습니다.
이 문제를 더 명확히하기 위해 동일한 유형의 두 번째 필드를 추가했습니다. 기본적으로 제외하고 싶지는 country.name
않습니다 countrOfBirth.name
. 또한 국가를 유형으로 제외하고 싶지 않습니다. 따라서 유형은 객체 그래프에서 정확히 지적하고 제외하려는 실제 위치와 동일합니다.