Como pesquisar / encontrar em JSON com java

Eu tenho uma string abaixo JSON do abaixo eu quero encontrar / critérios de pesquisa em JSON String.

1) Para encontrar o número de chaves presentes. 2) Para obter os valores de determinada chave (se tivermos matriz)

{
"store": {
    "book": [
        {
            "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
        },
        {
            "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
        },
        {
            "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
        },
        {
            "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
        }
    ],
    "bicycle": {
        "color": "red",
        "price": 19.95
    }
},
 "expensive": 10
}

Estou procurando uma solução como Groovy GPath Syntax

store.book - tamanho dessa matriz.store.book [*]. category - como pode cronometrar a chave presente na matriz.store.bicycle - se encontrou, deve retornar o valor verdadeiro

questionAnswers(3)

yourAnswerToTheQuestion