### Question:
JsonPathTokenizer extends AbstractIterator<String> { public JsonPathTokenizer(String path) { this.path = requireNonNull(path, "path is null"); if (path.isEmpty()) { throw invalidJsonPath(); } match('$'); } JsonPathTokenizer(String path); @Override String toString();  }### Answer:
@Test public void testJsonPathTokenizer() throws IOException { JsonPathTokenizer jsonPathTokenizer = new JsonPathTokenizer("$.logs[0].cloud.region"); ImmutableList<String> tokens = ImmutableList.copyOf(jsonPathTokenizer); List<String> tokenList = tokens.asList(); assertThat(tokenList.size(), is(equalTo(4))); assertThat(tokenList.get(0), is(equalTo("logs"))); assertThat(tokenList.get(1), is(equalTo("0"))); assertThat(tokenList.get(2), is(equalTo("cloud"))); assertThat(tokenList.get(3), is(equalTo("region"))); }