diff --git a/src/main/java/com/beust/jcommander/converters/CommaParameterSplitter.java b/src/main/java/com/beust/jcommander/converters/CommaParameterSplitter.java index 0e3bb1869..99bb8b728 100644 --- a/src/main/java/com/beust/jcommander/converters/CommaParameterSplitter.java +++ b/src/main/java/com/beust/jcommander/converters/CommaParameterSplitter.java @@ -5,8 +5,21 @@ public class CommaParameterSplitter implements IParameterSplitter { - public List split(String value) { - return Arrays.asList(value.split(",")); + @Override + public List split(final String value) { + return getJsonType(value.trim()) ? Arrays.asList(value) : Arrays.asList(value.split(",")); } + + /** + * Check if the parameter is in Json format. + * + * @param arg the split parameter + * @return {@code true} if {@code String} is in Json format + */ + public static boolean getJsonType(final String arg) { + final char[] chars = arg.toCharArray(); + return chars[0] == '{' && chars[chars.length-1] == '}' || chars[0] == '[' && chars[chars.length-1] == ']' + ? true : false; + } }