class JsonHelper {

    public void setNodeValue(JsonNode rootNode, String jsonPtrExpr, String value)
    {
        if(StringUtils.isBlank(jsonPtrExpr)
            || StringUtils.equals(jsonPtrExpr,"/")
            || StringUtils.endsWith(jsonPtrExpr, "/"))
        {
            throw new JsonHelperException("jsonPtrExpr must be a subnode.");
        }

        JsonPointer valueNodePointer = JsonPointer.compile(jsonPtrExpr);
        JsonPointer containerPointer = valueNodePointer.head();
        JsonNode parentJsonNode = rootNode.at(containerPointer);

        if (parentJsonNode.isMissingNode() || !parentJsonNode.isObject())
        {
            throw new JsonHelperException(String.format("Failed to find node at ref %1$s", jsonPtrExpr));
        }

        ((ObjectNode) parentJsonNode)
            .put(
                jsonPtrExpr.substring(jsonPtrExpr.lastIndexOf('/') + 1),
                value);
    }

    public  JsonHelper();

}