Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > f18465e414a7151c00fea251cfd62e31 > files > 28

ghc-json-devel-0.4.4-2.fc14.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Text.JSON</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Text-JSON.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>json-0.4.4: Support for serialising Haskell to and from JSON</TD
><TD CLASS="topbut"
><A HREF="src/Text-JSON.html"
>Source code</A
></TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Text.JSON</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>provisional</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Sigbjorn Finne &lt;sof@galois.com&gt;</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>JSON Types
</A
></DT
><DT
><A HREF="#2"
>Serialization to and from JSValues
</A
></DT
><DT
><A HREF="#3"
>Encoding and Decoding
</A
></DT
><DT
><A HREF="#4"
>Wrapper Types
</A
></DT
><DT
><A HREF="#5"
>Serialization to and from Strings.
</A
></DT
><DD
><DL
><DT
><A HREF="#6"
>Reading JSON
</A
></DT
><DT
><A HREF="#7"
>Writing JSON
</A
></DT
><DT
><A HREF="#8"
>Instance helpers
</A
></DT
></DL
></DD
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AJSValue"
>JSValue</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AJSNull"
>JSNull</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJSBool"
>JSBool</A
> !<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJSRational"
>JSRational</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> !<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJSString"
>JSString</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJSArray"
>JSArray</A
> [<A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJSObject"
>JSObject</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>)</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AJSON"
>JSON</A
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSON"
>readJSON</A
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSON"
>showJSON</A
> :: a -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSONs"
>readJSONs</A
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSONs"
>showJSONs</A
> :: [a] -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AResult"
>Result</A
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AOk"
>Ok</A
> a</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AError"
>Error</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aencode"
>encode</A
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adecode"
>decode</A
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AencodeStrict"
>encodeStrict</A
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdecodeStrict"
>decodeStrict</A
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AJSString"
>JSString</A
> </TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoJSString"
>toJSString</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromJSString"
>fromJSString</A
> :: <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AJSObject"
>JSObject</A
> e</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoJSObject"
>toJSObject</A
> ::  [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, a)] -&gt; <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromJSObject"
>fromJSObject</A
> :: <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e -&gt; [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, e)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AresultToEither"
>resultToEither</A
> ::  <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSNull"
>readJSNull</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSBool"
>readJSBool</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSString"
>readJSString</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSRational"
>readJSRational</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSArray"
>readJSArray</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSObject"
>readJSObject</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadJSValue"
>readJSValue</A
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSNull"
>showJSNull</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSBool"
>showJSBool</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSArray"
>showJSArray</A
> :: [<A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>] -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSRational"
>showJSRational</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSRational%27"
>showJSRational'</A
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSObject"
>showJSObject</A
> :: <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowJSValue"
>showJSValue</A
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmakeObj"
>makeObj</A
> :: [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>)] -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AvalFromObj"
>valFromObj</A
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>JSON Types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:JSValue"
><A NAME="t%3AJSValue"
></A
></A
><B
>JSValue</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#JSValue"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>JSON values
</P
><P
>The type to which we encode Haskell values. There's a set
 of primitives, and a couple of heterogenous collection types.
</P
><P
>Objects:
</P
><P
>An object structure is represented as a pair of curly brackets
 surrounding zero or more name/value pairs (or members).  A name is a
 string.  A single colon comes after each name, separating the name
 from the value.  A single comma separates a value from a
 following name.
</P
><P
>Arrays:
</P
><P
>An array structure is represented as square brackets surrounding
 zero or more values (or elements).  Elements are separated by commas.
</P
><P
>Only valid JSON can be constructed this way
</P
></TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:JSNull"
><A NAME="v%3AJSNull"
></A
></A
><B
>JSNull</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:JSBool"
><A NAME="v%3AJSBool"
></A
></A
><B
>JSBool</B
> !<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:JSRational"
><A NAME="v%3AJSRational"
></A
></A
><B
>JSRational</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> !<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:JSString"
><A NAME="v%3AJSString"
></A
></A
><B
>JSString</B
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:JSArray"
><A NAME="v%3AJSArray"
></A
></A
><B
>JSArray</B
> [<A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:JSObject"
><A NAME="v%3AJSObject"
></A
></A
><B
>JSObject</B
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>)</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:JSValue')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:JSValue" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON-Generic.html#t%3ATypeable"
>Typeable</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Serialization to and from JSValues
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:JSON"
><A NAME="t%3AJSON"
></A
></A
><B
>JSON</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#JSON"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The class of types serialisable to and from JSON
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
>Methods</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSON"
><A NAME="v%3AreadJSON"
></A
></A
><B
>readJSON</B
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#readJSON"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSON"
><A NAME="v%3AshowJSON"
></A
></A
><B
>showJSON</B
> :: a -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#showJSON"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSONs"
><A NAME="v%3AreadJSONs"
></A
></A
><B
>readJSONs</B
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> [a]</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#readJSONs"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSONs"
><A NAME="v%3AshowJSONs"
></A
></A
><B
>showJSONs</B
> :: [a] -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#showJSONs"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:JSON')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:JSON" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> ()</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString-Lazy.html#t%3AByteString"
>ByteString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.7/Data-ByteString.html#t%3AByteString"
>ByteString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntSet.html#t%3AIntSet"
>IntSet</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-IntMap.html#t%3AIntMap"
>IntMap</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Set.html#t%3ASet"
>Set</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> b) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> b) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (a, b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ix.html#t%3AIx"
>Ix</A
> i, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> i, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> e) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/array-0.3.0.1/Data-Array.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> b) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="/usr/share/doc/ghc/html/libraries/containers-0.3.0.0/Data-Map.html#t%3AMap"
>Map</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> b, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> c) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (a, b, c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> b, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> c, <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> d) =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (a, b, c, d)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Encoding and Decoding
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Result"
><A NAME="t%3AResult"
></A
></A
><B
>Result</B
> a </TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#Result"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A type for parser results
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Ok"
><A NAME="v%3AOk"
></A
></A
><B
>Ok</B
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Error"
><A NAME="v%3AError"
></A
></A
><B
>Error</B
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Result')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Result" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonad"
>Monad</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AFunctor"
>Functor</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Monad.html#t%3AMonadPlus"
>MonadPlus</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Control-Applicative.html#t%3AAlternative"
>Alternative</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/mtl-1.1.0.2/Control-Monad-Error-Class.html#t%3AMonadError"
>MonadError</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> <A HREF="Text-JSON.html#t%3AResult"
>Result</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:encode"
><A NAME="v%3Aencode"
></A
></A
><B
>encode</B
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#encode"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Encode a Haskell value into a string, in JSON format.
</P
><P
>This is a superset of JSON, as types other than
 Array and Object are allowed at the top level.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:decode"
><A NAME="v%3Adecode"
></A
></A
><B
>decode</B
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#decode"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Decode a String representing a JSON value 
 (either an object, array, bool, number, null)
</P
><P
>This is a superset of JSON, as types other than
 Array and Object are allowed at the top level.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:encodeStrict"
><A NAME="v%3AencodeStrict"
></A
></A
><B
>encodeStrict</B
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#encodeStrict"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Encode a value as a String in strict JSON format.
 This follows the spec, and requires all values
 at the top level to be wrapped in either an Array or Object.
 JSON types to be an Array or Object.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:decodeStrict"
><A NAME="v%3AdecodeStrict"
></A
></A
><B
>decodeStrict</B
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#decodeStrict"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Decode a String representing a strict JSON value.
 This follows the spec, and requires top level
 JSON types to be an Array or Object.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Wrapper Types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:JSString"
><A NAME="t%3AJSString"
></A
></A
><B
>JSString</B
>  </TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#JSString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Strings can be represented a little more efficiently in JSON
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:JSString')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:JSString" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON-Generic.html#t%3ATypeable"
>Typeable</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toJSString"
><A NAME="v%3AtoJSString"
></A
></A
><B
>toJSString</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#toJSString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Turn a Haskell string into a JSON string.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromJSString"
><A NAME="v%3AfromJSString"
></A
></A
><B
>fromJSString</B
> :: <A HREF="Text-JSON.html#t%3AJSString"
>JSString</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#fromJSString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:JSObject"
><A NAME="t%3AJSObject"
></A
></A
><B
>JSObject</B
> e </TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#JSObject"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>As can association lists
</TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:JSObject')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:JSObject" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> e =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq"
>Eq</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> e =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd"
>Ord</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> e =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead"
>Read</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> e =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow"
>Show</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> (<A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:toJSObject"
><A NAME="v%3AtoJSObject"
></A
></A
><B
>toJSObject</B
> ::  [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, a)] -&gt; <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#toJSObject"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Make JSON object out of an association list.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fromJSObject"
><A NAME="v%3AfromJSObject"
></A
></A
><B
>fromJSObject</B
> :: <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> e -&gt; [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, e)]</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-Types.html#fromJSObject"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:resultToEither"
><A NAME="v%3AresultToEither"
></A
></A
><B
>resultToEither</B
> ::  <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#resultToEither"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Map Results to Eithers
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Serialization to and from Strings.
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="6"
><A NAME="6"
>Reading JSON
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSNull"
><A NAME="v%3AreadJSNull"
></A
></A
><B
>readJSNull</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSNull"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read the JSON null type
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSBool"
><A NAME="v%3AreadJSBool"
></A
></A
><B
>readJSBool</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSBool"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read the JSON Bool type
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSString"
><A NAME="v%3AreadJSString"
></A
></A
><B
>readJSString</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSString"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read the JSON String type
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSRational"
><A NAME="v%3AreadJSRational"
></A
></A
><B
>readJSRational</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSRational"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read an Integer or Double in JSON format, returning a Rational
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSArray"
><A NAME="v%3AreadJSArray"
></A
></A
><B
>readJSArray</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSArray"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read a list in JSON format
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSObject"
><A NAME="v%3AreadJSObject"
></A
></A
><B
>readJSObject</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSObject"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read an object in JSON format
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:readJSValue"
><A NAME="v%3AreadJSValue"
></A
></A
><B
>readJSValue</B
> :: <A HREF="Text-JSON-String.html#t%3AGetJSON"
>GetJSON</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#readJSValue"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Read one of several possible JS types
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="7"
><A NAME="7"
>Writing JSON
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSNull"
><A NAME="v%3AshowJSNull"
></A
></A
><B
>showJSNull</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSNull"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Write the JSON null type
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSBool"
><A NAME="v%3AshowJSBool"
></A
></A
><B
>showJSBool</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSBool"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Write the JSON Bool type
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSArray"
><A NAME="v%3AshowJSArray"
></A
></A
><B
>showJSArray</B
> :: [<A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>] -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSArray"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Show a list in JSON format
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSRational"
><A NAME="v%3AshowJSRational"
></A
></A
><B
>showJSRational</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSRational"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Show a Rational in JSON format
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSRational'"
><A NAME="v%3AshowJSRational%27"
></A
></A
><B
>showJSRational'</B
> :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3ARational"
>Rational</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSRational%27"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSObject"
><A NAME="v%3AshowJSObject"
></A
></A
><B
>showJSObject</B
> :: <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSObject"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Show an association list in JSON format
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:showJSValue"
><A NAME="v%3AshowJSValue"
></A
></A
><B
>showJSValue</B
> :: <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON-String.html#showJSValue"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Show JSON values
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="8"
><A NAME="8"
>Instance helpers
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:makeObj"
><A NAME="v%3AmakeObj"
></A
></A
><B
>makeObj</B
> :: [(<A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
>, <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
>)] -&gt; <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#makeObj"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:valFromObj"
><A NAME="v%3AvalFromObj"
></A
></A
><B
>valFromObj</B
> :: <A HREF="Text-JSON.html#t%3AJSON"
>JSON</A
> a =&gt; <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="Text-JSON.html#t%3AJSObject"
>JSObject</A
> <A HREF="Text-JSON.html#t%3AJSValue"
>JSValue</A
> -&gt; <A HREF="Text-JSON.html#t%3AResult"
>Result</A
> a</TD
><TD CLASS="declbut"
><A HREF="src/Text-JSON.html#valFromObj"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Pull a value out of a JSON object.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.6.1</TD
></TR
></TABLE
></BODY
></HTML
>