JSON으로 작업할 때 Gson을 사용하여 JSON 데이터를 형식화된 객체로 변환하는 것이 일반적입니다. 그러나 구문 분석해야 하는 ArrayList 항목의 유형이 리플렉션을 사용하여 런타임에 동적으로 결정되는 시나리오가 발생할 수 있습니다. 이러한 경우 기존 TypeToken 접근 방식은 부족할 수 있습니다.
예를 들어 다음 코드를 고려하세요.
Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType(); List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
이 코드는 JSON 문자열을 myClass 개체 목록으로 변환합니다. 하지만 ArrayList의 항목 유형을 동적으로 결정해야 한다면 어떻게 될까요?
이를 달성하려면 Gson 버전 2.8.0에 도입된 새로운 기능인 TypeToken.getParameterized를 활용할 수 있습니다. 이 방법을 사용하면 지정된 매개변수화된 유형으로 TypeToken을 생성할 수 있습니다.
사용 방법은 다음과 같습니다.
private <T> Type setModelAndGetCorrespondingList2(Class<T> type) { Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType(); return typeOfObjectsListNew; }
ArrayList 클래스와 동적 항목 유형 클래스 유형을 인수로 전달 TypeToken.getParameterized에 대해 원하는 항목 유형의 ArrayList를 나타내는 TypeToken을 생성합니다. 그런 다음 이 TypeToken을 Gson.fromJson의 매개변수로 사용하여 JSON 데이터를 원하는 목록 유형으로 올바르게 구문 분석할 수 있습니다.
위 내용은 런타임 시 동적 ArrayList 항목 유형과 함께 Gson TypeToken을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!