Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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