Question: Given a JSON like:

```json
{
  "a":1,
  "b":2,
  "c":3,
  "d":4,
  "e":5
}

```

How can I select out `b`, `d` and `e` to get the following JSON?

```json
{
  "b":2,
  "d":4,
  "e":5
}

```

I want a JSON object and NOT only `2`, `4` and `5` values?

This is what I'm trying with and failing:

```none
$.[b,d,e]

```

Answer: 
JSONPath is not suitable for what you are trying to achieve: JSONPath is designed to select values and not key-value pairs. What you want could be achieved with Jackson or any JSON parser for Java. 

If you want to go for Jackson here's the code that will do the trick:

```java
String json = "{\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"e\":5}";

ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree(json);

ObjectNode node = mapper.createObjectNode();
node.set("b", tree.get("b"));
node.set("d", tree.get("d"));
node.set("e", tree.get("e"));

String result = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(node);

```
Your json path is correct, while `json` it self is not. It should be:

```
{
"a":1,
"b":2,
"c":3,
"d":4,
"e":5
}

```

BTW there is good online testing resources for these purposes: <http://jsonpath.com/>