Java tutorial
/* Copyright 2015 CrushPaper.com. This file is part of CrushPaper. CrushPaper is free software: you can redistribute it and/or modify it under the terms of version 3 of the GNU Affero General Public License as published by the Free Software Foundation. CrushPaper is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with CrushPaper. If not, see <http://www.gnu.org/licenses/>. */ package com.crushpaper; import java.io.IOException; import com.fasterxml.jackson.databind.JsonNode; /** * A class that wraps the JsonNode so that less code is required for common * functions. */ public class JsonNodeHelper { JsonNodeHelper(JsonNode node) { this.node = node; } /** * Returns the string value for the key, null if it does not exist, or * throws an exception if the value is not a string. * * @throws IOException */ public String getString(String key) throws IOException { JsonNode value = node.get(key); if (value == null) { return null; } if (!value.isTextual()) { throw new IOException(); } return value.asText(); } /** * Returns the string array value for the key, null if it does not exist, or * throws an exception if the value is not an array of strings. * * @throws IOException */ public String[] getStringArray(String key) throws IOException { JsonNode value = node.get(key); if (value == null) { return null; } if (!value.isArray()) { throw new IOException(); } int size = value.size(); String[] values = new String[size]; for (int i = 0; i < size; ++i) { JsonNode element = value.get(i); if (element == null) { throw new IOException(); } if (!element.isTextual()) { throw new IOException(); } values[i] = element.asText(); } return values; } /** * Returns the json array for the key, null if it does not exist, or throws * an exception if the value is not an array of objects. * * @throws IOException */ public JsonNodeHelper[] getJsonArray(String key) throws IOException { JsonNode value = node.get(key); if (value == null) { return null; } if (!value.isArray()) { throw new IOException(); } int size = value.size(); JsonNodeHelper[] values = new JsonNodeHelper[size]; for (int i = 0; i < size; ++i) { JsonNode element = value.get(i); if (element == null) { throw new IOException(); } if (!element.isObject()) { throw new IOException(); } values[i] = new JsonNodeHelper(element); } return values; } /** * Returns the boolean value for the key, false if it does not exist, or * throws an exception if the value is not a boolean. * * @throws IOException */ public boolean getBoolean(String key) throws IOException { JsonNode value = node.get(key); if (value == null) { return false; } if (!value.isBoolean()) { throw new IOException(); } return value.asBoolean(); } private JsonNode node; /** * Returns the long value for the key, false if it does not exist, or throws * an exception if the value is not a long. * * @throws IOException */ public Long getLong(String key) throws IOException { JsonNode value = node.get(key); if (value == null) { return null; } if (!value.isNumber()) { throw new IOException(); } return value.asLong(); } }