diff --git a/gson/src/main/java/com/google/gson/JsonFieldNameValidator.java b/gson/src/main/java/com/google/gson/JsonFieldNameValidator.java index c8e94762..1afb1a90 100644 --- a/gson/src/main/java/com/google/gson/JsonFieldNameValidator.java +++ b/gson/src/main/java/com/google/gson/JsonFieldNameValidator.java @@ -31,7 +31,7 @@ import java.util.regex.Pattern; */ class JsonFieldNameValidator { private static final Pattern JSON_FIELD_NAME_PATTERN = - Pattern.compile("(^[a-zA-Z][a-zA-Z0-9\\$_]*$)|(^[\\$_][a-zA-Z][a-zA-Z0-9\\$_]*$)"); + Pattern.compile("(^[a-zA-Z][a-zA-Z0-9\\$_\\-]*$)|(^[\\$_][a-zA-Z][a-zA-Z0-9\\$_\\-]*$)"); /** diff --git a/gson/src/test/java/com/google/gson/JsonFieldNameValidatorTest.java b/gson/src/test/java/com/google/gson/JsonFieldNameValidatorTest.java index c0e0e762..e4a80195 100644 --- a/gson/src/test/java/com/google/gson/JsonFieldNameValidatorTest.java +++ b/gson/src/test/java/com/google/gson/JsonFieldNameValidatorTest.java @@ -92,4 +92,9 @@ public class JsonFieldNameValidatorTest extends TestCase { fail("Json field name can not contain a period character"); } catch (IllegalArgumentException expected) { } } + + public void testDashesInFieldName() throws Exception { + String fieldName = "test-field-name"; + assertEquals(fieldName, validator.validate(fieldName)); + } }