| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package org.leumasjaffe.json;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import java.util.function.BiFunction;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- import java.util.stream.StreamSupport;
- import com.fasterxml.jackson.databind.JsonNode;
- import lombok.experimental.UtilityClass;
- @UtilityClass
- public class JsonHelper {
- public List<JsonNode> toArray(final JsonNode array) {
- return StreamSupport.stream(array.spliterator(), false).collect(Collectors.toList());
- }
-
- public <T> List<T> toArray(final JsonNode array, Function<JsonNode, T> transform) {
- return StreamSupport.stream(array.spliterator(), false).map(transform).collect(Collectors.toList());
- }
-
- public Set<String> fieldNames(final JsonNode object) {
- Set<String> rval = new HashSet<>();
- object.fieldNames().forEachRemaining(rval::add);
- return rval;
- }
-
- public <T> Set<T> fieldNames(final JsonNode object, Function<String, T> transform) {
- Set<T> rval = new HashSet<>();
- object.fieldNames().forEachRemaining(s -> rval.add(transform.apply(s)));
- return rval;
- }
-
- public Map<String, JsonNode> fields(final JsonNode object) {
- Map<String, JsonNode> rval = new HashMap<>();
- object.fields().forEachRemaining(pair -> rval.put(pair.getKey(), pair.getValue()));
- return rval;
- }
-
- public <T> Map<String, T> fields(final JsonNode object, Function<JsonNode, T> transform) {
- Map<String, T> rval = new HashMap<>();
- object.fields().forEachRemaining(pair -> rval.put(pair.getKey(), transform.apply(pair.getValue())));
- return rval;
- }
-
- public <T> Map<String, T> fields(final JsonNode object, BiFunction<String, JsonNode, T> transform) {
- Map<String, T> rval = new HashMap<>();
- object.fields().forEachRemaining(pair -> rval.put(pair.getKey(),
- transform.apply(pair.getKey(), pair.getValue())));
- return rval;
- }
- }
|