This topic explains how to specify JSON within command-line options when using gfsh
, the VMware Tanzu GemFire command-line interface.
Some gfsh
commands allow JSON specifications within some options. These JSON strings specify initialization properties in the form of key/value pairs.
A JSON string is appended to a fully qualified class name, for those classes that implement the Declarable
interface. The parameter to the interface’s init
method is an object that contains initialization properties. The JSON string is parsed and broken into a set of property names and values that define the object.
The specification of a cache loader class in the gfsh create region
command may have a JSON specification. For example,
gfsh>create region --name=region1 --type=PARTITION \
--cache-loader=com.example.Setup{'k1':'v1','k2':'v2','k3':'v3'}
The JSON string in this example is
{'k1':'v1','k2':'v2','k3':'v3'}
The JSON string is surrounded by curly braces, and the pairs are separated by commas.
Each pair is separated by a colon. Each of the two strings that define a pair is enclosed with single or double quote characters. Be consistent throughout the JSON string in the use of either single or double quote characters.
Space characters separate gfsh
command-line options, and the tokenizing of the options occurs before the parsing of JSON strings. If the value within the command-line option contains a space, delimit it with double quote marks.
As an example, assume that there is a single pair, and the value of the pair is value with space
. The right-hand side of the --cache-loader
example option becomes
gfsh>create region --name=region2 --type=PARTITION \
--cache-loader="com.example.Setup{'k1':'value with space'}"
To incorporate a single quote character within a value, escape it with two backslash characters. For example,
gfsh>create region --name=region3 --type=PARTITION \
--cache-loader="com.example.Setup{'k1':'property\\'s value'}"
The value of the pair is property's value
.