/** * Convert a {@link ISelectableValueHolder} into JSON.<br> * The structure is the following one : {"value" : "the value", "name" : "the name", "description" * : "the description","url" : "the url"} * * @param valueHolder a value holder * @return a JSON object */ public static <T> ObjectNode marshallAsJson(ISelectableValueHolder<T> valueHolder, int order) { ObjectNode valueHolderAsJson = Json.newObject(); valueHolderAsJson.put("name", valueHolder.getName()); valueHolderAsJson.put("order", order); valueHolderAsJson.put("value", String.valueOf(valueHolder.getValue())); if (valueHolder.getDescription() != null) { valueHolderAsJson.put("description", valueHolder.getDescription()); } if (valueHolder.getUrl() != null) { valueHolderAsJson.put("url", valueHolder.getUrl()); } return valueHolderAsJson; }