One document matched: draft-pbryan-zyp-json-pointer-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2396 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2396.xml">
<!ENTITY RFC2616 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
<!ENTITY RFC4627 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4627.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="info" docName="draft-pbryan-zyp-json-pointer-00" ipr="trust200902">
<front>
<title abbrev="JSON Pointer">JSON Pointer </title>
<author fullname="Paul C. Bryan" initials="P." surname="Bryan" role="editor">
<organization>ForgeRock US, Inc.</organization>
<address>
<postal>
<street>201 NE Park Plaza Drive Suite 196</street>
<city>Vancouver</city>
<region>WA</region>
<code>98684</code>
<country>USA</country>
</postal>
<phone>+1 604 783 1481</phone>
<email>paul.bryan@forgerock.com</email>
</address>
</author>
<author fullname="Kris Zyp" initials="K." surname="Zyp">
<organization>SitePen (USA)</organization>
<address>
<postal>
<street>530 Lytton Avenue</street>
<city>Palo Alto</city>
<region>CA</region>
<code>94301</code>
<country>USA</country>
</postal>
<phone>+1 650 968 8787</phone>
<email>kris@sitepen.com</email>
</address>
</author>
<date year="2011" />
<area>General</area>
<workgroup>Internet Engineering Task Force</workgroup>
<keyword>json</keyword>
<abstract>
<t>JSON Pointer provides a syntax for identifying a specific node within a JSON
document.</t>
</abstract>
</front>
<middle>
<section title="Introduction">
<t>This Internet-Draft proposes JSON Pointer, a syntax for identifying a specific
node within a <xref target="RFC4627">JSON</xref> document. The syntax is intended
to be expressed in a JSON string value or in a URL fragment identifier for
a resource with a JSON representation.</t>
</section>
<section title="Conventions">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in <xref target="RFC2119"/>.</t>
</section>
<section title="Syntax">
<t><figure>
<preamble>A JSON Pointer is a sequence of zero or more property reference tokens,
starting with and separated by the "/" (\x2F) character. Each property reference
token is a sequence of unreserved characters or escape sequences per
<xref target="RFC2396"/>.</preamble>
<artwork><![CDATA[
pointer = "/" 0*1( token *( "/" token ) )
token = 1*<URI unreserved character or escape sequence>
]]> </artwork></figure></t>
<t>It is an error condition if a JSON Pointer does not conform to this syntax.</t>
</section>
<section title="Evaluation">
<t>A JSON Pointer is evaluated against a target JSON document and yields a target
node. Evaluation begins with the initial target node being the JSON document itself.
For each property reference token, a new target node is selected from the current
target node.</t>
<t>If the current target node is a JSON object, then the new target is the value of
the property with the name identified by the next property reference token. If the
current target node is a JSON array, then the new target is the value of the item in
the array with the zero-based index identified by the next property reference token
(which MUST be a non-negative integer number value).</t>
<t>It is an error condition if a property reference token fails to resolve a value for
the current target node. The target node is successively updated for each property
reference token until the entire sequence of property reference tokens is
evaluated.</t>
<t>Property names SHOULD be URI encoded per <xref target="RFC2396"/>. In particular,
any "/" character in a property name MUST be encoded as "%2F" to avoid being
interpreted as a property reference token separator.</t>
</section>
<section anchor="Errors" title="Error Handling">
<t>In the event of an error condition, evaluation of the JSON Pointer fails to
complete.</t>
</section>
<section title="Acknowledgements">
<t>This specification originated from the
<xref target="JSON Schema"/> specification.</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>This draft includes no request to IANA.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>This draft includes no security considerations.</t>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&RFC2396;
&RFC4627;
</references>
<references title="Informative References">
<reference anchor="JSON Schema" target="http://tools.ietf.org/html/draft-zyp-json-schema-03">
<front>
<title>A JSON Media Type for Describing the Structure and Meaning of JSON Documents</title>
<author initials="K." surname="Zyp">
<organization>SitePen (USA)</organization>
</author>
<author initials="G." surname="Court">
<organization/>
</author>
<date year="2010" month="November" />
</front>
</reference>
</references>
<section title="Examples">
<t>
<figure>
<preamble>For example, for the following JSON representation:</preamble>
<artwork><![CDATA[
{
"foo": {
"anArray": [
{ "prop": 44 }
],
"another prop": {
"baz": "A string"
}
}
}
]]> </artwork>
</figure>
<figure>
<preamble>The following JSON Pointers would be resolved:</preamble>
<artwork><![CDATA[
JSON Pointer resolution
------------------- ----------
/ self, the root of the resource itself
/foo the object referred to by the foo property
/foo/another%20prop the object referred to by the "another prop"
property of the object referred to by the
"foo" property
/foo/another%20prop/baz the string referred to by the value of "baz"
property of the "another prop" property of
the object referred to by the "foo" property
/foo/anArray/0 the first object in the "anArray" array
]]> </artwork>
</figure>
</t>
</section>
<section title="Changelog">
<t>
<list style="hanging">
<t hangText="draft-00">
<list>
<t>Initial draft.</t>
</list>
</t>
</list>
</t>
</section>
<section anchor="Issues" title="Open Issues">
<t>TBD</t>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 20:33:59 |