Reference

string

The string type is used for strings of text. It may contain Unicode characters.

Language-specific info:
Python
Ruby
Objective-C
Swift
In Python, "string" is analogous to the unicode type on Python
schema
{ "type": "string" }
data
"Déjà vu"
compliant to schema
data
""
compliant to schema
data
"42"
compliant to schema
data
42
not compliant to schema

Length

The length of a string can be constrained using the minLength and maxLength keywords. For both keywords, the value must be a non-negative number.

schema
{ "type": "string", "minLength": 2, "maxLength": 3}
data
"A"
not compliant to schema
data
"AB"
compliant to schema
data
"ABC"
compliant to schema
data
"ABCD"
not compliant to schema

Regular Expressions

The pattern keyword is used to restrict a string to a particular regular expression. The regular expression syntax is the one defined in JavaScript (ECMA 262 specifically) with Unicode support. See Regular Expressions for more information.

When defining the regular expressions, it's important to note that the string is considered valid if the expression matches anywhere within the string. For example, the regular expression "p" will match any string with a p in it, such as "apple" not just a string that is simply "p". Therefore, it is usually less confusing, as a matter of course, to surround the regular expression in ^...$, for example, "^p$", unless there is a good reason not to do so.

The following example matches a simple North American telephone number with an optional area code:

schema
{ "type": "string", "pattern": "^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$"}
data
"555-1212"
compliant to schema
data
"(888)555-1212"
compliant to schema
data
"(888)555-1212 ext. 532"
not compliant to schema
data
"(800)FLOWERS"
not compliant to schema

Need Help?

Did you find these docs helpful?

Help us make our docs great!

At JSON Schema, we value docs contributions as much as every other type of contribution!

Still Need Help?

Learning JSON Schema is often confusing, but don't worry, we are here to help!.