2010-06-24 2 views
3

Jackson 라이브러리의 Streaming API JsonParser을 사용하여 java에서 사용자 정의 json 파싱을 수행합니다.Jackson json 라이브러리에서 peek()을 수행하는 방법은 무엇입니까?

peek() 메서드와 비슷한 기능을 구현하는 방법이 있습니까? 다음 토큰이 반환되지만 커서 위치는 앞으로 이동하지 않습니다. 나는 불행히도 스트림에 커서를 앞으로 이동 위의 경우에 대한 nextToken() 방법을 사용 잭슨 본 적이

JsonParser parser = new JsonFactory().createParser(inputStream); 
while(parser.peek() != JsonToken.START_ARRAY){ 
    ...do something with the current token... 
} 

코드 예제 :

이에 대한 사용 사례는 다음과 유사합니다 .

peek()은 즉시 사용할 수있는 잭슨에서 가능합니까, 아니면 추가 방법으로 달성 할 수 있습니까?

NB. 다른 도서관에는 관심이 없으므로 " 도서관 x이 모든 작업을 수행하고 주방 싱크대"답변을 바랍니다.

답변

5

아니요, 현재 이러한 기능이 없습니다. 위임 래퍼를 사용하여 그렇게 할 수 있습니까? 현재 요소에 대해 보유하고 싶은 정보에 따라 비교적 쉽게 구현할 수있는 'org.codehaus.jackson.util.JsonParserDelegate'가 있습니다.

무엇이든지간에 JsonParser.peek()를 추가하는 것이 가능할 수도 있습니다. 이를 요청하는 가장 좋은 방법은 기능 요청을 http://jira.codehaus.org/browse/JACKSON에 제출하는 것입니다. 이 기능은 아직 다른 사람이 요청하지 않았을 가능성이 큽니다.

이유는 구현하기가 쉽기 때문에 단일 문자 사전 검색 만 필요합니다.

+1

실제로 생각해 보겠습니다. 아니요. 추가하기가 쉽지 않습니다. 구분 기호 (쉼표, 콜론)로 인해 간단한 미리보기가 작동하지 않습니다. 그래서 그것을 추가하는 것은 아마도 쉬운 일이 아닙니다. – StaxMan

+1

http://jira.codehaus.org/browse/JACKSON-315를 참조하십시오. – eskatos

관련 문제