►
From YouTube: JSON DOM (1)
Description
Continued in https://youtu.be/JVKNdfFC4bI.
A
A
A
Hello
friends
welcome
back
to
our
ipr
review.
Today
we
are
going
to
focus
first
on
a
writable,
dom
and
dynamic
support
in
json
4.96,
and
then
this
will
be
takes
an
hour
and
then
we
will
do
the
remaining
issues.
A
I
think
if
the
doc
opens
already
yeah
steve,
do
you
want
to
walk
us
through
it
because
you
wrote
it
right
you're,
not
sharing,
I'm
not
showing
your
screen
again.
Okay,.
B
Just
a
couple,
some
history,
I
guess
on
it
before
we
open
up
the
shared
dock.
Originally,
we
we
wanted
to
support
dynamic
and
oral
and
it
missed
schedule.
So
we
hunted
it
and
we
got
a
lot
of
feedback
from
the
community
along
the
lines
of
you
know.
C
B
D
B
B
There's
some
overlap
with
on
prior
work,
including
the
prototype
that
we
had
in
the
four-wheel
time
frame,
we're
on
writable,
dom
and
then
also
my
prototype
and
then
some
some
some
other
thinking
around
dynamic
and
on
writable
dom
as
well.
But
in
general.
This.
B
This
doc
then
combined
two
things
to
combine
the
the
dynamic
stuff
and
the
proposed
writable,
dom
the
previous
support
or
proposal
that
we
had
for
writable
dom
in
the
four
time
frame,
which
wasn't
prototype
stage
and
went
in
our
repo
for
a
little
bit
and
that
was
pulled
out
did
not
have
support
for
dynamic.
B
So
if
we
had
a
dynamic
after
that,
we
would
have
had
yet
another
way
to
get
a
writable
dom.
So
this
proposal
attempted
to
bring
those
requirements
together
into
one
design,
and
this.
A
B
The
api
dock-
this
is
more
of
a
discussion,
doc
design
dock,
so
I'm
I'm
still
assuming
there'll
be
another
api
doc.
After
this
meeting.
A
Yeah,
that
makes
sense,
so
I
guess
this
is
more
than
the
document-
that's
kind
of
capturing.
What
it
is
that
we
want
to
achieve
then
4.6.
A
C
A
B
Disappeared
so
that
first
bullet
says
yeah
the
writable
dom
prototype,
and
I
did
mention
that
dynamic
support
code
example.
This
is
the
example
I
added
for
those
that
said
they
were
blocked
and
it
basically
uses
a
custom
converter
to
override
the
behavior
first
system.object.
B
It
works
pretty
good.
I
think,
then,
the
azure
team
also
has
a
prototype
and
I
think
a
package
you
can
download
and
use
that
has
yet
another
version
of
writable,
dom
it's
more
tuned
for
performance
and.
B
B
But
that's
kind
of
disconnected
from
this
effort
right
now
other
than
we're
asking
asking
that
team
to
review
this
here,
a
6-0
time
frame,
it's
kind
of
understood
that
any
kind
of
new
dynamic
support,
probably
won't
be
there
in
time
for
6-0,
since
it
spans
c-sharp
and
roslyn
releases.
B
So
so
these
three
things
are
all
influencing
the
stock.
But
again
this
was
originally
created
for
support
for
dynamic,
which
is
a
loosely
typed
model.
You
know
it
look.
It
looks
like
it's
strongly,
typed,
of
course,
but
it's
not
and
based
upon
some
feedback
in
this
design.
If
you,
if
you
go-
and
you
know,
click
the
link
that
leave
my
shirt,
that
you'll
see
that
james
jameson,
king
and
and
others
have
said
that
we
need
a
more
loosely
type
model
than
what
I
originally
had.
B
So
this
has
been
updated
to
minimize
the
number
of
casts.
You
need
so
it's
a
lot
less
strongly
typed
than
the
the
writable
dom
prototype
that
we
had
in
fibo.
B
So
it's
just
kind
of
that
mentality,
I
think,
is
something
that
we
need
to
discuss,
because
when
looking
at
the
apis,
they're
focused
around
more
of
the
dynamic
scenarios
and
not
a
you
know
a
rigid
dom
model
that
we
have
for
for
jason
for
the
the
existing
dom
support
that
we
have,
which
is
read
only
today
with
json
document
and
json
element.
It's
very
rigid
model,
very
nice.
If
you
know
exactly
what
your
scheme
is
not
so
nice,
if
you
just
want
to
write
minimal
code,
okay,
so
yeah.
B
Okay,
this
is
just
discussing
some
plumbing
to
get
the
dynamic
support
working
if
you're
not
familiar
with
the
dynamic
I'll
try
to
describe
that
a
little
bit
here.
There
are
implementations
to
support
dynamic,
including
dynamic
object
and
expandable
object.
B
They
have
a
lot
of
unnecessary
methods
for
interface,
interface-based
methods
that
you
have
to
that
will
show
up
in
that
intellisense.
B
So
the
low-level
way
to
implement
dynamic
is
to
support.
I
dynamic
meta
object
provider
and
that's
what
this
prototype
does
and
what
this
document
assumes
right
now.
B
So
originally,
in
this
prototype,
I
had
a
way
that
I
had
two
assemblies
are
an
extra
assembly
that
I
added
to
support
this
dynamic
support.
However,
talking
to
those
that
work
on,
the
linker
was
decided
that
that
wasn't
necessary
and
that
the
assembly
reference
we
have
to
system
link.
Expressions
would
go
away
for
not
using
this
feature.
B
That's
assuming
a
certain
programming
model
to
enable
dynamic
which
we'll
get
to
later.
Basically,
the
system
link
expressions
deal
is
very
large
and
scenarios
such
as
blazer
client.
They
don't
want
to
bring
along
this
if
they're,
not
using
the
feature
dynamic
feature.
B
Okay,
I
can
scroll
down
here
a
little
bit.
I
talk
about
the
system
link,
expressions
on
assembly
and
there
are.
There
are
two
aspects
to
this
here.
That
are
two
different
ways
to
think
about.
This
is
that
we
have
an
api,
it
works
without
dynamic,
and
then
we
have
the
same
api
that
works
with
dynamic
more
under
the
hood.
If
that
makes
sense.
So
even
though
we
have
a
writable
dom
that
uses
dynamic,
when
you
want
to
use
dynamic,
you
can
still
use
writable
dom
without
dynamic,
so
dynamic
support
is
enabled
at
runtime.
B
If
you
want
it,
if
you
don't
want
it,
you
still
get
the
benefits
of
the
writable,
dom
it's
just
can't
you.
It
doesn't
have
the
dynamic
features
that
make
sense.
So
that's
what
does
enable
dynamic
type
types
method
is
for
it's
assumed
to
be
called,
I'm
not
sure,
what's
static
right
here,.
A
B
Yeah-
and
I
don't
know
why
these
are
mark
static,
just
this
classes
methods.
I
think
this
is
the
type
one.
A
B
Well,
it
does
have
to
be
called
before
you
use
the
options
class
just
like
today.
You
can't
change
the
options
once
you
you
know
serialize
or
deserialize.
It
needs
to
be
called.
It
should
be
called
before
that
otherwise
you're
gonna
get.
I
think
some
odd
behavior.
A
A
B
Mean
what
it
does
do
one
thing:
it
adds
a
custom
converter
to
the
options
class.
A
B
The
the
support
for,
let
me
think
about
this
for
a
second.
A
B
Support
for
system
object,
I
do
I
I
have
to
look
at
what
I
wrote.
It's
been
a
couple
months
here
since
I
I
think
I've
updated
this,
but
I
believe
the
current
thinking
is
that
this
will
add
a
custom
converter
for
system.object
that
enables
dynamic
support
and
it
doesn't.
It
can't
contain
an
if
statement
it
has
to
work
with
the
linker.
B
That's
why
there's
no
like
bull
property
or
anything
like
that.
Instead,
it's
just
a
method
like
this,
because
if
you
try
to
make
it
a
bull,
you
know
the
linker.
A
A
Even
if
you
don't
use
the
linker,
but
if
you
don't
call
the
method,
dynamic
types
just
wouldn't
work
at
all
right,
and
so,
if
you,
if
you
want
to
make
people,
if
you,
if
you
want,
if
you
don't
want
to
pay
the
penalty
for
it
by
default,
then
an
api
makes
sense.
If,
if
we
basically
want
the
behavior,
where
dynamic
types
just
work,
unless
you
say
for
the
linking,
I
really
don't
want
this,
then
I
think
the
link
option
would
make
more
sense.
D
Adding
a
custom
converter
then
steve
my
recollection
is:
this
type
is
self-closing
like
once
you
do
serialize
the
first
time
it
it
starts,
throwing
if
you
modify
it
so
this
does
under
your
current
thinking,
have
to
be
called
before
the
first
call
to
de-serialize.
Otherwise,
you'll
get
a
the
serial.
The
options
are
closed
for
changes
exception
and
it
wouldn't
do
anything.
C
D
B
It's
very
similar
to
all
the
other
options
that
we
have
on
on
this
class.
You
know
if
you
want
to
set
a
property
name
and
policy
or
ignore
null
or
anything
like
that.
You
just
have
to
do
it
at
the
same
time,
you
initialize
this.
B
B
Page
so
yeah
simple
code,
yeah,
it's
not
a
static
method,
so
sorry
I'll
just
call
the
instance
method
and
here's
an
example
of
using
the
dynamic
keyword
with
json
node,
and
you
know
if
you're
not
familiar
with
dynamic.
The
dynamic
keyword
here
uses
it
understands
it,
but
but
really
it's
looking
at
this
interfaces
using
this
interface
that
I
mentioned
earlier
to
address
my
prop
here.
My
prop
is,
of
course,
not
a
property
on
json
node,
but
it
is
present
in
the
json.
B
On
the
line
that
has
dynamic,
you
will
get
the
exception.
It's
just
a
matter
of
you
know
on
assignment,
I
guess
the
deserialized
will
say
fine.
I
can
deserialize
jason
note,
but
then
c
sharp
is
going
to
try
to
cast
it
to
this
interface
and
if
it
doesn't
implement
that
interface
c-sharp
will
throw
an
exception.
B
But
you
know
this
is
interesting,
because
if
you
remove,
if
you
place
dynamic
with
json
node,
it
will
work
fine
because
you're
deserializing
json,
so
you
and
that
and
that's
the
case
of
not
using
dynamic
and
you
then
then
you
wouldn't
need
the
first
to
lose
the
code
either.
B
But
this
is
just
saying
this
is
how
you
deal
with
dynamic
at
the
highest
level,
the
jason
node
key
parameter
for
deserialize
in
theory
that
could
be
object
or
it
could
be
even
the
dynamic.
A
B
And
I
talked
about
that
in
the
next
thing
that
says
during
the
t
and
d
serialized
t
it's
just
a
matter
of
syntax.
I
think
having
json
note
here
is
one
way
to
do
it.
You
could
say
object
or
dynamic.
Probably
object
makes
the
most
sense
for
the
dynamic,
if
you
put,
if
you
use
dynamic,
as
the
t
parameter
is
equivalent
to
object,
but
anyway,
this
is
just
different
syntax
for
the
same
same
thing,.
B
Yep
yep
and
that's
the
same
as
using
object.
I
run
time
that
that
dynamic
changes
into
object
for
the
for
generics
right.
A
A
E
B
You
say
that
again
for
the
which,
which
option.
A
E
A
B
No,
it
does
because
we
have
a
custom
converter
today
for
object
that
returns
json
element.
So
this
without
the
you
know
the
call
to
enable
dynamic
types.
What
you'll
get
back
is
json
element.
If
you.
B
B
There's
just
more
samples
here
supporting
non-dynamic
to
dynamic.
By
the
way
we
did
have
a
tiny,
tiny
review
a
couple
three
months
ago
and
with
jeremy
just
to
kind
of
go
over.
Some
scenarios
has
changed
since
then,
but
one
of
the
asks
back
then
was
if,
if
you
created
a
non-dynamic
json
node
and
want
dynamic
support,
it
would
be
nice
to
be
able
to
do
that.
So
this
is
just
a
little
piece
of
trivia.
B
Maybe
it's
coming
too
early
in
the
dark
here
to
talk
about
this,
but
there
is
a
proposal
to
add
to
dynamic
method,
but
let's
just
skip
over
that.
For
now.
If
you
don't
mind.
B
A
B
Right
right
and
yeah,
eventually
we'll
get
to
the
api
section
that
kind
of
talks
about
that,
but
yep,
that's
the
json
node
is
the
base
class
and
then
there's
just
a
value.
Json
object
and
json
collection
that
derived
from
that.
A
B
Okay,
let's
see
this
section.
B
Talks
about
some
scenarios
for
the
writable
dom
one
of
the
interesting
things
that
we
we
ran
into
the
sterilizer
is
like
impedance
mismatch
between
the
json
and
the
object
mod.
The
clr
object
model,
so
you
can
have,
for
example,
in
json,
a
number
adjacent
number
and
normally
that
would
relate
to
a
double
or
int
or
whatever.
On
the
clr
side.
B
However,
there's
a
feature
that
said:
hey,
we
want
to
be
able
to
use
strings
and
json
as
numbers
quoted
numbers
we've
been
calling
them,
so
that
means
adjacent
string
is
not
always
a
string
on
clr
type.
I
mean
it
might
be
a
number,
that's
always
been
kind
of
true
for
other
things,
like
new
values
and
and
stuff.
Like
that,
you
know,
a
string
on
this
represented
can
be
represented.
B
I
mean
a
string
can
be
used
to
represent
an
enum
and
it
can
also
now
be
used
to
represent
a
number.
So
it
just
adds
a
different
way
to
think
about
the
object
model
here,
because
a
json
number
may
not
be
it
may
be
a
string
adjacent
or
maybe
adjacent
number.
B
So
this
design
talks
about
that
shows
examples
of
be
able
to
convert
between
different
representations
of
a
number.
A
So
that's
interesting
because
I
would
naively
assume
that
the
dom
is
a
representation
of
the
json
encoding
right
and
so
then
to
me
the
fact
that
the
class
supports
quoted
numbers
is
more
like
a
policy
on
top
of
the
dom.
If
you
will
so
I
would
I
mean
I
would
have
naively
assumed.
If
you
have,
you
know
a
property.
You
know
key
colon.
A
A
A
B
I
mean
json
number
represents
a
number
and
you
can
obtain
that
through
a
string
or
through
you
know,
a
primitive
number
type.
I
I
think
scroll
up
a
little
bit,
so
we
get
the
whole.
B
A
B
A
B
We
just
know
it's
a
number
and
you
have
to
know
what
it
is,
because
it
could
overflow
we
could
underflow
and
that's
why
we
don't
assign
median
and
json
element,
unlike
newtonsoft,
I
think
which,
which
we'll
try
to
use
a
double
by
default
when
you
deserialize
the
number,
there's
no
default
definitive
type
for
that,
and
this
is
just
going
over
some
examples
of
that
an
nan,
not
a
number
is
a
string,
and
this
is
another
case
that
we
had
to
add
support
for
in
the
json
serializer
is
here
we
have
a
number
and
a
n.
B
You
know
positive
infinity,
negative
infinity
or
two
other
values,
but
it's
a
string
jason
allows
a
string,
it
doesn't
care,
doesn't
even
know
it's
a
number
right,
it's
a
strength
json,
but
we
treat
it
as
a
number,
because
that's
what
you
know
floating
points
support.
So
it's
really
ties
in.
I
think
some
of
the
other
requirements
that
we
already
have
that
are
not
possible
today,
with
like
jason
element.
Probably
would
I
don't
think
work
very
well
with
this
jeremy?
B
A
B
A
Yeah,
I
don't
know
like
I'm
kind
of
torn,
because,
basically,
if
you,
if
you
want
to
on
one
hand
side,
I
can
understand
why
you
want
the
behavior
that
you
say
quoted.
Numbers
are
passed
differently
based
on
civilization
options
but
like
if
you,
if
you
think
of
the
dom
as
something
that
you
parse
independently.
A
It
seems
a
bit
weird
to
me
that
we
have
behavior
where
the
parse
tree
differs
based
on.
You
know,
civilization
configuration
effectively.
That
seems
odd,
like
because
to
me
I
mean,
maybe
I'm
just
you
know
old-fashioned
but
like,
if
you
think
of,
like
you
know,
lex
england,
putting
them
parsing
and
then
you
know,
steel
eyes
are
like.
I
would
think
that
you
know
lexington
parsing
is
independent
of
rules
like
oh,
we
support
quoted
strings
right.
A
B
B
But
yeah,
let's
keep
going.
I
I
I
get
that,
but
the
purpose
of
this
is
to
it's
kind
of
like
what
comes
first
dynamic
or
maybe
a
strongly
more
strongly.
Typed
program
model
this
design,
because
it
was
originally
created
to
support
dynamic,
assume,
loose
typing
and
casts
when
you
need
them,
and
it
assumes.
B
What
the
types
are
just
like
when
you
use
dynamic,
you
know
you
know,
for
example,
a
certain
property
is
an
integer.
If,
if
it's
not
an
integer,
normally,
when
you
use
dynamic,
I
mean
you
can
implement
dynamic
in
many
different
ways,
but
normally
the
consumer
of
it
knows
what
the
given
type
is
in
the
json
and
it's
not
something
that
you
inspect
at
runtime,
you
just
hardcode
it
and
that's
the
problem
with
dynamic
in
a
way
because
you
can
write,
you
know
beautiful
code
that
looks
and
it
compiles
fine
a
runtime.
A
I
guess
that's
my
mental
model
like
I
I
would.
I
would
have
assumed
that
you
know
the
what
you
get
in
the
dom
is
the
truthful
representation
of
the
encoding
of
the
json
document.
So
if
someone
uses
the
string,
it's
a
json
string
if
something
uses
the
number
it's
adjacent
number
but
then
because
of
dynamic.
I
would
personally
expect
that
I
can
power.
A
You
know
I
can
cast
a
json
string
to
a
number
or
boolean
and
then
that
might
succeed
or
fail
depending
on
what
the
value
ended
up
being
right,
but
I
would
think
if
I
actually
inspect
the
object
at
one
time,
I
would
expect
to
find
a
json
string.
There
were
quotes
that
I
would
expect
to
see
a
json
number
if
there
weren't
any
quotes
right
independent
of
any
options
and.
A
B
Bit,
but
there
was
some
discussion
about
not
even
having
jason
number
jason
string
and
those
types
and,
like
I
said,
just,
have
a
decent
value
type
and
don't
disambiguate,
I
guess,
with
the
type
and
just
have
a
single
bill.
We
still
have
to
differentiate.
I
think
between
collections
and
values
right,
but
as
far
as
numbers
versus
strings.
A
A
I
mean
personally,
I
think,
in
a
dom
that's
what
I
would
probably
expect
to
see
like,
rather
than
switching
over
a
kind.
I
would,
I
would
assume
I
can
just
do
you
know
costs,
that's
it.
I
mean
in
the
tree
representation
that
just
feels
more
natural,
but
I
don't
have
super
strong
opinions.
I
mean
yeah,
I
can
see
when
you
actually
support
the
casting.
You
end
up,
basically
with
jason
number
jason
strangers
and
fully
and
effectively
implementing
the
same
thing,
because
well
they
all
have
to
be
converted
to
anybody
right
and
then
that
might
be.
B
Yeah
yeah
yeah
show
adjacent
note
here
and
I
can
go
over
that.
Can
you
scroll
down
quick
just
to
make
sure
we
can
see
all
the
types
here?
So
here's
jason,
node
and
then
jason
array
jason
object,
jason
value,
okay,
so
scroll
back
up?
Okay,
so
I
so
this
was
edited
the
last
time
I
got
feedback
and
the
example
of
love
that
would
json
number
that's
not
valid.
Sorry,
I
have
to
update
this
to
replace
the
new
api.
B
So
so
this
current
proposal
says
there's
just
adjacent
value
and
we'll
get
to
that
later.
I
think
primarily
because
of
the
same
items
that
we're
just
talking
about
is
that
it
is
kind
of
confusing
to
have
these.
You
know
string
types
versus
google
types
when
they
they
can
be
represented,
json
or
adjacent
number
that
when
they
can
be
represented
in
json
in
as
different
values,
so
the
base
class
is
a
node.
It
does
have
reference
to
the
options
class,
which
is
maybe
not
something
expected.
B
However,
the
reason
is
there
is
because
it
does
support
custom
converters,
unlike
the
json
element,
json
document
stuff,
which
doesn't
know
anything
about
the
serializer
json
node
is
intended
to
understand
the
serializer.
So
that
means
it's
up
to
convert
individual
converters.
You
know
including
custom
converters
that
you
might
register
with
the
options
class
to
support
what
you
get
or
what
what
values
you
get
back
when
you
call
good
value.
B
It
doesn't
matter
what
what
I
mean:
okay,
they're
json
object
down
below,
and
I
guess
we'll
get
to
that
later,
but
json
node
is
intended
to
represent
everything
right
now
I
mean
you
know:
jason
ray
jason
object
or
json
value,
but
json
object
is,
is
a
built-in
type
and
if
you
have
a
custom
converter
for
that,
just
treat
it
as
a
value.
A
No,
I
mean
like
the
value
property
directly
on
json
or
because
you're
saying
it
supports
the
serializer.
So
like
does
that
mean
if
I
access
the
value
property
of
json
node,
do
I
only
ever
get
back
like
a
primitive
like
you
know,
an
array
of
something
or
you
know
an
indoor,
bool
or
a
string,
or
do
I
actually
get
back
some
high
level?
Dcls
object
like
customer.
B
You'll
get
back
the
the
high
level
object.
I
I
mean,
I
guess
scroll.
B
That
or
scroll
up
a
little
bit.
Sorry,
where
are
the
indexers
okay,
yeah,
there's.
F
B
Two
indexes
here,
one
for
jason
node,
I
mean
one
for
on
the
string
and
one
for
an
integer
and
those
are
assumed
to
work
with
either
json
object
and
json
array.
This
was
added
in
the
last
pass,
based
upon
feedback
to
minimize
minimize
casting,
but
the
intent
is
that,
most
of
the
time
you
just
work
with
jason
node
and
you
you
call
it
get
value
of
t
when
you
want
to
get
specific
type,
and
in
that
case
you
don't
even
really
need
to
know
you
don't
necessarily
care.
B
B
Okay,
jason
array
and
json
object,
I
mean
represent
adjacent
array
or
adjacent
object.
Implement
I
list
in
my
dictionary,
similar
to
newtonsoft.
B
Json
value
used
to
be
json
string,
json,
boolean
and
json
number.
Now
it's
sealed.
So
that
is
there's
a
little
cleanup
like
I
said
it
has
to
happen
in
this.
A
Dock,
so
basically
json
ranges,
and
obviously
the
value
add
of
using
those
directly
is
because
they're
effectively
hiding
the
indexers
from
the
base
right.
So
the
first
one
basically
gives
me
an
in-based
indexer
that
directly
returns
object
rather
than
json,
node,
correct
and
then
the
second
one.
Logically
the
same
it
gives
me
an
index
that
takes
a
string,
gives
me
back
an
object
rather
than
json
node
right.
B
B
When
you
have
a
complicated
syntax,
where
you're
trying
to
access
something
like
five
levels
down-
and
you
have
to
say
you
know
for
element
two-
I
need
you
know-
return
that
okay,
this
property
has
a
string.
I
need
that.
Okay,
now
there's
another
collection
up
for
that
property.
For
example,
you
have
you
know
three
levels
down
or
something
mixed
between
an
object
and
a
collection,
and
it
allows
you
to
do
that
on
one
line
without
the
intermediate
casts.
D
To
be
explicitly
implemented,
but
you
know,
if
you
have
a
json
array,
you
should
be
able
to
add
some.
You
know,
it'll
have
an
ad
of
object
and
contains
and
other
things
that
the
node
level
doesn't
have.
So
if
you're
building
one
you
would
want
to
build
the
array,
so
you
can
call
add,
add,
add
and
then
and
then
now
you
let
it
go
away.
A
So
it's
so
I
guess
my
question
is
if
once
I'm
into
like
once
I'm
yeah
once
I
cast
to
json
array,
how
like
it
seems
like
when
I'm
not
indexing
into
a
json
array,
I
get
back
object.
So
how
do
I
get
back?
Something
that
I
can
actually
walk.
A
B
A
B
Yes-
and
I
could
look
at
the
code
here-
I
can
share
some
of
it
if
you
want,
but
the
current
prototype
is
functional.
In
this
I
mean
the
is
functional
in
the
sense
that
implements
the
api
here,
and
you
can
take
a
look
at
it.
I
guess
after
this
side
here
and
see
what.
A
A
A
B
This
does
not
show
all
of
the
methods
that
are
implemented.
I
mean
just
shows
I
list
the.
If
you
look
at
the
code,
some
of
them
are
implemented
explicitly
to
hide
them,
and
some
of
them
aren't
I
see,
but
you
would
have
to
cast
a
json
array.
You
know
in
order
to
call
those
art
our
cast,
I
list
or
whatever,
but
some
are
implemented
explicitly
some
implicitly
when
we
actually
do
the
api
review.
You
know
they'll
have
to
be
called
out,
but
for.
B
Dictionary
methods
are
not
very
commonly
used
and
we
would,
you
know,
want
to
hide
some
of
those
just
for
confusion's
sake,
but
in
general
you,
you
use
the
the
indexers
to
go
down
to
a
certain
level,
and
then
you
can
either
cast
it
to
jason
ray
if
you
want,
or
you
can
call
get
value
or
try
get
value
on
adjacent
node
to
get
the
value
out
during
the
read
mode,
and
I
I
should
have
examples
later,
if
not
the
the
actual
private
branch
has
a
whole
set
of
tests
around
this,
that
you
can
look
at.
A
A
B
B
It
doesn't
matter
until
it
comes
time
to
serialize
it.
I
I
believe
I'll
have
to
look
at
that
scenario
later.