ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Error] simplefrmework ValueRequiredException
    프로그래밍/Android 2016.01.11 23:55

    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"를 지정해줘야 한다.


    댓글 1

Designed by Tistory.