JSP처럼 Gson의 메소드에 의해 반환 된 데이터를 직렬화 할 수 있습니까?

락샨 프라 부

컨텍스트를 설정하기 위해 JSP에서는 다음과 같이 객체의 메소드에 액세스 할 수 있습니다.

Class Student

 public Object getXXXWhichNeedsFewLogic() {
    // Logic to get obj, which i don't want to store as a variable in this class.
    return obj;
}

학생 객체를 jsp에 전달하면 다음과 같이이 메서드에 액세스 할 수 있습니다.

student.XXXWhichNeedsFewLogic

Gson 직렬화 중에 동일한 결과를 얻을 수 있습니까? 최종 출력 json은 다음과 같은 값을 포함해야합니다.

{XXXWhichNeedsFewLogic : obj}

락샨 프라 부

다음은 메서드의 결과를 직렬화하기위한 샘플 클래스입니다.

public class GsonTest {

public static class Student {
    public Object getXXXWhichNeedsFewLogic() {
        return "foo";
    }
}

public static class GetterSerializer<T> implements JsonSerializer<T> {
    @Override
    public JsonElement serialize(T src, Type typeOfSrc, JsonSerializationContext context) {
        if (null == src) {
            return new JsonNull();
        }
        JsonObject obj = new JsonObject();
        for (Method m : src.getClass().getDeclaredMethods()) {
            if (m.getName().startsWith("get") && m.getParameterCount() == 0) {
                try {
                    obj.add(m.getName().substring(3), context.serialize(m.invoke(src)));
                } catch (InvocationTargetException | IllegalAccessException e) {
                }
            }
        }
        return obj;
    }
}
@Test
public void testSerialization() {
    System.out.println(
            new GsonBuilder()
                    .registerTypeAdapter(Student.class, new GetterSerializer<Student>())
                    .create()
                    .toJson(new Student()));
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터 클래스의 post_init 메서드에 정의 된 변수를 직렬화 할 수 있습니까?

분류에서Dev

일괄 처리를 위해 EventData의 직렬화 된 크기를 어떻게 결정할 수 있습니까?

분류에서Dev

Django REST Framework를 사용하여 OPTIONS에서 반환 한 json의 반환 된 필드 메타 데이터 유형을 어떻게 변경할 수 있습니까?

분류에서Dev

Spring Batch의 ExecutionContext에 대해 Lucene IndexWriter를 직렬화 할 수 있습니까?

분류에서Dev

JSONMarshal : 메타 데이터없이 '일반'JSON으로 /에서 직렬화 / 해제 할 수 있습니까?

분류에서Dev

JSONMarshal : 메타 데이터없이 '일반'JSON으로 /에서 직렬화 / 해제 할 수 있습니까?

분류에서Dev

SPARQL 쿼리에서 반환 된 데이터 세트의 유니 코드 문제를 어떻게 해결할 수 있습니까?

분류에서Dev

파이썬 twisted의 dataRecieved 메서드에서 데이터를 반환 할 수 있습니까?

분류에서Dev

then () 메서드에 의해 반환 된 promise가 해결되는 방식을 제어 할 수 있습니까?

분류에서Dev

malloc에 의해 반환 된 메모리 주소는 항상 다른 유형에 대한 포인터로 교환 할 수 있습니까?

분류에서Dev

VirtualBox가 시작된 VM의 IP 주소를 반환 할 수 있습니까?

분류에서Dev

C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

분류에서Dev

동일한 직렬화 된 개체의 두 복사본 간의 차이점을 확인할 수 있습니까?

분류에서Dev

Miruken에서 Controller의 initialize 메소드에서 promise를 반환 할 수 있습니까?

분류에서Dev

컬렉션에 포함 된 객체의 하나의 속성을 JSON으로 직렬화 할 수 있습니까?

분류에서Dev

Objective-C-Object가 마치 자신의 것처럼 IMP 메소드를 직접 실행할 수있는 방법이 있습니까?

분류에서Dev

포함 된 모듈 에서처럼 인스턴스 메서드를 직접 호출 할 수 있습니까?

분류에서Dev

SQLAlchemy에 의해 직렬화 된 데이터를 postgres에 저장

분류에서Dev

이전에 실행 된 jquery의 반환 된 결과에서 jquery를 실행할 수 있습니까?

분류에서Dev

인터페이스가 반환되는 개인 생성자에 의해 생성 된 클래스에서 공용 EventHandler를 구독 할 수 있습니까?

분류에서Dev

요소를 사용할 수있을 때 개체 배열의 이진 데이터 역 직렬화

분류에서Dev

다른 페이지에서 오는 두 개의 데이터를 어떻게 반환 할 수 있습니까?

분류에서Dev

SQL Server Express가 절반 TB의 데이터를 처리 할 수 있습니까?

분류에서Dev

서명 및 반환 유형이 다른 여러 JPA 저장소 메서드에 대해 하나의 @Query를 사용할 수 있습니까?

분류에서Dev

Eve에서 'dict'유형의 'valueschema'가있는 필드에 패치 할 때 데이터를 직렬화 할 수 없습니다.

분류에서Dev

UnitTest에서 반환 된 JsonResult 내부의 데이터를 어떻게 얻을 수 있습니까?

분류에서Dev

jqgrid는 그룹화 된 열의 데이터를 자동 정렬합니다.이 기능을 어떻게 해제 할 수 있습니까?

분류에서Dev

Spring Cache 추상화에서 사용하는 직렬화를 사용자 정의 할 수 있습니까?

분류에서Dev

그것은 직접 변수에 메서드의 반환 값을 할당 할 수 있습니까?

Related 관련 기사

  1. 1

    데이터 클래스의 post_init 메서드에 정의 된 변수를 직렬화 할 수 있습니까?

  2. 2

    일괄 처리를 위해 EventData의 직렬화 된 크기를 어떻게 결정할 수 있습니까?

  3. 3

    Django REST Framework를 사용하여 OPTIONS에서 반환 한 json의 반환 된 필드 메타 데이터 유형을 어떻게 변경할 수 있습니까?

  4. 4

    Spring Batch의 ExecutionContext에 대해 Lucene IndexWriter를 직렬화 할 수 있습니까?

  5. 5

    JSONMarshal : 메타 데이터없이 '일반'JSON으로 /에서 직렬화 / 해제 할 수 있습니까?

  6. 6

    JSONMarshal : 메타 데이터없이 '일반'JSON으로 /에서 직렬화 / 해제 할 수 있습니까?

  7. 7

    SPARQL 쿼리에서 반환 된 데이터 세트의 유니 코드 문제를 어떻게 해결할 수 있습니까?

  8. 8

    파이썬 twisted의 dataRecieved 메서드에서 데이터를 반환 할 수 있습니까?

  9. 9

    then () 메서드에 의해 반환 된 promise가 해결되는 방식을 제어 할 수 있습니까?

  10. 10

    malloc에 의해 반환 된 메모리 주소는 항상 다른 유형에 대한 포인터로 교환 할 수 있습니까?

  11. 11

    VirtualBox가 시작된 VM의 IP 주소를 반환 할 수 있습니까?

  12. 12

    C ++ MFC에서 이진 직렬화 된 개체를 C #에서 역 직렬화 할 수 있습니까?

  13. 13

    동일한 직렬화 된 개체의 두 복사본 간의 차이점을 확인할 수 있습니까?

  14. 14

    Miruken에서 Controller의 initialize 메소드에서 promise를 반환 할 수 있습니까?

  15. 15

    컬렉션에 포함 된 객체의 하나의 속성을 JSON으로 직렬화 할 수 있습니까?

  16. 16

    Objective-C-Object가 마치 자신의 것처럼 IMP 메소드를 직접 실행할 수있는 방법이 있습니까?

  17. 17

    포함 된 모듈 에서처럼 인스턴스 메서드를 직접 호출 할 수 있습니까?

  18. 18

    SQLAlchemy에 의해 직렬화 된 데이터를 postgres에 저장

  19. 19

    이전에 실행 된 jquery의 반환 된 결과에서 jquery를 실행할 수 있습니까?

  20. 20

    인터페이스가 반환되는 개인 생성자에 의해 생성 된 클래스에서 공용 EventHandler를 구독 할 수 있습니까?

  21. 21

    요소를 사용할 수있을 때 개체 배열의 이진 데이터 역 직렬화

  22. 22

    다른 페이지에서 오는 두 개의 데이터를 어떻게 반환 할 수 있습니까?

  23. 23

    SQL Server Express가 절반 TB의 데이터를 처리 할 수 있습니까?

  24. 24

    서명 및 반환 유형이 다른 여러 JPA 저장소 메서드에 대해 하나의 @Query를 사용할 수 있습니까?

  25. 25

    Eve에서 'dict'유형의 'valueschema'가있는 필드에 패치 할 때 데이터를 직렬화 할 수 없습니다.

  26. 26

    UnitTest에서 반환 된 JsonResult 내부의 데이터를 어떻게 얻을 수 있습니까?

  27. 27

    jqgrid는 그룹화 된 열의 데이터를 자동 정렬합니다.이 기능을 어떻게 해제 할 수 있습니까?

  28. 28

    Spring Cache 추상화에서 사용하는 직렬화를 사용자 정의 할 수 있습니까?

  29. 29

    그것은 직접 변수에 메서드의 반환 값을 할당 할 수 있습니까?

뜨겁다태그

보관