Page History
...
You
...
use
...
the
...
Read…WithPath
...
methods
...
to
...
read
...
a
...
value
...
whose
...
location
...
in
...
the
...
JSON
...
data
...
is
...
specified
...
by
...
a
...
path.
...
A
...
path
...
is
...
a
...
sequence
...
of
...
member
...
name
...
and
...
array
...
index,
...
separated
...
by
...
a
...
forward
...
slash.
...
For
...
example,
...
using
...
the
...
previous
...
JSON
...
string
...
example:
...
{
...
...
"name":
...
...
{
...
...
"given":
...
"John",
...
...
"surname":
...
"Smith"
...
...
},
...
.
...
.
...
.
...
The
...
path
...
to
...
the
...
"given"
...
member
...
value
...
(John)
...
is
...
"name/given".
...
And
...
still
...
using
...
the
...
JSON
...
string
...
from
...
the
...
previous
...
example:
...
{
...
...
.
...
.
...
.
...
...
"contactNo":
...
...
[
...
...
{
...
area:
...
"02",
...
no:
...
"9378
...
2867",
...
type:
...
"landline"
...
},
...
...
{
...
no:
...
"0468
...
732
...
371",
...
type:
...
"mobile"
...
}
...
...
]
...
The
...
path
...
to
...
the
...
area
...
code
...
of
...
the
...
first
...
contact
...
number
...
is
...
"contactNo/1/area".
...
Note
...
that
...
indexes
...
are
...
always
...
1-based,
...
which
...
is
...
a
...
standard
...
in
...
RDML.
...
Let's
...
now
...
put
...
it
...
into
...
practice.
...
We
...
want
...
to
...
get
...
the
...
value
...
of
...
the
...
"given"
...
and
...
"surname"
...
members:
...
#GivenName
...
:=
...
#Reader.ReadStringWithPath("name/given")
...
#Surname
...
:=
...
#Reader.ReadStringWithPath("name/surname")
...
We
...
can
...
also
...
open
...
and
...
enter
...
the
...
"name"
...
object
...
so
...
we
...
don't
...
have
...
to
...
repeat
...
the
...
"name"
...
segment
...
in
...
the
...
path:
...
#Reader.BeginObjectWithPath("name")
...
#GivenName
...
:=
...
#Reader.ReadStringWithPath("given")
...
#Surname
...
:=
...
#Reader.ReadStringWithPath("surname")
...
#Reader.EndObject
...
To
...
get
...
the
...
contact
...
number
...
type
...
of
...
the
...
first
...
contact
...
number:
...
#ContactNoType
...
:=
...
#Reader.ReadStringWithPath("contactNo/1/type")
...
Or
...
you
...
can
...
navigate
...
into
...
the
...
first
...
element
...
of
...
"contactNo"
...
first,
...
then
...
get
...
the
...
"type"
...
value:
...
#Reader.BeginObjectWithPath("contactNo/1")
...
#ContactNoType
...
:=
...
#Reader.ReadStringWithPath("type")
...
#Reader.EndObject
...
Next: Read…WithName