如何在杰克逊杰森图书馆做peek()?

Iai*_*oat 3 java parsing json jackson

我使用的是流API JsonParser的的杰克逊库做一些自定义的JSON在Java解析.

有没有办法实现类似于方法的功能peek(),返回下一个标记,但光标位置不向前移动?

此用例类似于以下内容:

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

我见过杰克逊的代码示例使用了nextToken()上述情况的方法,不幸的是,它也在流中向前移动光标.

是否peek()有可能与杰克逊外的开箱,或者用另外的方法实现的?

NB.对其他图书馆不感兴趣,所以没有" 图书馆x做所有这一切和厨房水槽 "类型的答案请.

Sta*_*Man 5

不,目前没有这样的功能.你可以通过使用委托包装器来做到这一点?有'org.codehaus.jackson.util.JsonParserDelegate'可以使它相对容易实现,具体取决于你想要保留哪些关于当前元素的信息.

无论它有什么价值,都可以添加JsonParser.peek(); 请求此方法的最佳方式是在http://jira.codehaus.org/browse/JACKSON上提交功能请求.很可能这个功能尚未被任何人请求.

这可能很容易(足够)实现的原因是它应该只需要一个字符前瞻.