반응형
retrofit (simple) xml convert 사용시 아래 오류가 발생.
org.simpleframework.xml.core.ValueRequiredException : Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=false, name=, required=true, type=void) on field 'juso' ...
해결방법은 아래와 같다.
<results> <common> <totalCount>366</totalCount> <currentPage>1</currentPage> <countPerPage>10</countPerPage> <errorCode>0</errorCode> <errorMessage>정상</errorMessage> </common> <juso> <roadAddr> <![CDATA[ 인천광역시 부평구 동수천로 1 (부평동) ]]> </roadAddr> <roadAddrPart1> <![CDATA[ 인천광역시 부평구 동수천로 1 ]]> </roadAddrPart1> <roadAddrPart2> <![CDATA[ (부평동) ]]> </roadAddrPart2> <jibunAddr> <![CDATA[ 인천광역시 부평구 부평동 161-12 ]]> </jibunAddr> <engAddr> <![CDATA[ 1, Dongsucheon-ro, Bupyeong-gu, Incheon ]]> </engAddr> <zipNo> <![CDATA[ 21403 ]]> </zipNo> <admCd> <![CDATA[ 2823710100 ]]> </admCd> <rnMgtSn> <![CDATA[ 282373154013 ]]> </rnMgtSn> <bdMgtSn> <![CDATA[ 2823710100101610012105442 ]]> </bdMgtSn> <detBdNmList> <![CDATA[ ]]> </detBdNmList> </juso> </results>
이런 형식으로 이루어진 xml인데 juso 노드의 경우 검색결과가 존재하지 않을 경우 값이 넘어오지 않는다.
그러므로 아래와 같이 작성해야 한다.
@Root(name="results") public class Results { @ElementList(inline=true, entry="common") List<Common> common = new ArrayList<>(); @ElementList(inline=true, entry="juso", required = false) List<Address> address = new ArrayList<>(); }
이렇게 required="false"
를 지정해줘야 한다.
반응형