<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_13) on Sat Nov 06 11:09:28 CDT 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
JSONArray (Apache Wink 1.1.2-incubating API)
</TITLE>

<META NAME="date" CONTENT="2010-11-06">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="JSONArray (Apache Wink 1.1.2-incubating API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JSONArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSON.html" title="class in org.apache.wink.json4j"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/json4j/JSONArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JSONArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.util.AbstractList">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.wink.json4j</FONT>
<BR>
Class JSONArray</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.AbstractCollection&lt;E&gt;
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.AbstractList&lt;E&gt;
          <IMG SRC="../../../../resources/inherit.gif" ALT="extended by ">java.util.ArrayList
              <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.wink.json4j.JSONArray</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.List, java.util.RandomAccess, <A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>JSONArray</B><DT>extends java.util.ArrayList<DT>implements <A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></DL>
</PRE>

<P>
Extension of ArrayList that only allows values which are JSON-able.  
 See JSONObject for a list of valid values.
 
 Instances of this class are not thread-safe.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.apache.wink.json4j.JSONArray">Serialized Form</A></DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_java.util.AbstractList"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class java.util.AbstractList</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>modCount</CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray()">JSONArray</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.util.Collection)">JSONArray</A></B>(java.util.Collection&nbsp;col)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class based off the contents of the passed in collection</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.util.Collection, boolean)">JSONArray</A></B>(java.util.Collection&nbsp;col,
          boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class based off the contents of the passed
 in collection</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.io.InputStream)">JSONArray</A></B>(java.io.InputStream&nbsp;is)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the data provided from the input stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.io.InputStream, boolean)">JSONArray</A></B>(java.io.InputStream&nbsp;is,
          boolean&nbsp;strict)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the data provided from the input stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(int)">JSONArray</A></B>(int&nbsp;initialCapacity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class with the specified initial capacity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.lang.Object[])">JSONArray</A></B>(java.lang.Object[]&nbsp;elems)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class based off the contents of the passed object array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.lang.Object[], boolean)">JSONArray</A></B>(java.lang.Object[]&nbsp;elems,
          boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class based off the contents of the passed object array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.io.Reader)">JSONArray</A></B>(java.io.Reader&nbsp;rdr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the data provided from the reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.io.Reader, boolean)">JSONArray</A></B>(java.io.Reader&nbsp;rdr,
          boolean&nbsp;strict)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the data provided from the reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.lang.String)">JSONArray</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the provided JSON object string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#JSONArray(java.lang.String, boolean)">JSONArray</A></B>(java.lang.String&nbsp;str,
          boolean&nbsp;strict)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new instance of this class from the provided JSON object string.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#add(int, java.lang.Object)">add</A></B>(int&nbsp;index,
    java.lang.Object&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#add(java.lang.Object)">add</A></B>(java.lang.Object&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#add(java.lang.Object, boolean)">add</A></B>(java.lang.Object&nbsp;element,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#addAll(java.util.Collection)">addAll</A></B>(java.util.Collection&nbsp;collection)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#addAll(int, java.util.Collection)">addAll</A></B>(int&nbsp;index,
       java.util.Collection&nbsp;collection)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getBoolean(int)">getBoolean</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as a boolean.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getDouble(int)">getDouble</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as a double.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getIndex(int)">getIndex</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to get a JSONArray entry at a specified index.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getInt(int)">getInt</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as an int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getJSONArray(int)">getJSONArray</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to obtain the specified index as a JSONArray
 Only values that are instances of JSONArray will be returned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONObject.html" title="class in org.apache.wink.json4j">JSONObject</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getJSONObject(int)">getJSONObject</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to obtain the specified key as a JSONObject
 Only values that are instances of JSONObject will be returned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getLong(int)">getLong</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as a long.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;short</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getShort(int)">getShort</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as a short.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#getString(int)">getString</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to obtain a value at the specified index as a string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#isNull(int)">isNull</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility function for testing if an element at index 'idx' is null or not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#join(java.lang.String)">join</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to mimic the behavior of the JavaScript array join function</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#length()">length</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility function that maps ArrayList.size() to length, for compatibility to other JSON parsers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#opt(int)">opt</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to get the object at that position, or null if outside the array range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#opt(int, java.lang.Object)">opt</A></B>(int&nbsp;index,
    java.lang.Object&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to get the object at that position, or null if outside the array range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optBoolean(int)">optBoolean</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as an boolean, or 'false' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optBoolean(int, boolean)">optBoolean</A></B>(int&nbsp;index,
           boolean&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as an boolean, or 'defaultValue' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optDouble(int)">optDouble</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a double, or Double.NaN if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optDouble(int, double)">optDouble</A></B>(int&nbsp;index,
          double&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a double, or Double.NaN if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optInt(int)">optInt</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as an int, or '0' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optInt(int, int)">optInt</A></B>(int&nbsp;index,
       int&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as an int, or defaultValue if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optLong(int)">optLong</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a long, or '0' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optLong(int, long)">optLong</A></B>(int&nbsp;index,
        long&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a long, or defaultValue if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;short</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optShort(int)">optShort</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a short, or '0' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;short</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optShort(int, short)">optShort</A></B>(int&nbsp;index,
         short&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a short, or '0' if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optString(int)">optString</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a String, or null if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#optString(int, java.lang.String)">optString</A></B>(int&nbsp;index,
          java.lang.String&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to obtain the value at index as a String, or defaultValue if outside the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(boolean)">put</A></B>(boolean&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a int into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.util.Collection)">put</A></B>(java.util.Collection&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.util.Collection, boolean)">put</A></B>(java.util.Collection&nbsp;value,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(double)">put</A></B>(double&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a double into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int)">put</A></B>(int&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a int into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, boolean)">put</A></B>(int&nbsp;index,
    boolean&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a boolean into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, java.util.Collection)">put</A></B>(int&nbsp;index,
    java.util.Collection&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, java.util.Collection, boolean)">put</A></B>(int&nbsp;index,
    java.util.Collection&nbsp;value,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, double)">put</A></B>(int&nbsp;index,
    double&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a double into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, int)">put</A></B>(int&nbsp;index,
    int&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place an int into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, long)">put</A></B>(int&nbsp;index,
    long&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a long into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, java.util.Map)">put</A></B>(int&nbsp;index,
    java.util.Map&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a java.util.Map instance in the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, java.util.Map, boolean)">put</A></B>(int&nbsp;index,
    java.util.Map&nbsp;value,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a java.util.Map instance in the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, java.lang.Object)">put</A></B>(int&nbsp;index,
    java.lang.Object&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map of java.util.ArrayList.add(int, java.lang.Object), for compatibility to other JSON parsers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(int, short)">put</A></B>(int&nbsp;index,
    short&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a short into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(long)">put</A></B>(long&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a long into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.util.Map)">put</A></B>(java.util.Map&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.util.Map, boolean)">put</A></B>(java.util.Map&nbsp;value,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a map into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.lang.Object)">put</A></B>(java.lang.Object&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map of java.util.ArrayList.add(java.lang.Object), for compatibility to other JSON parsers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(java.lang.Object, boolean)">put</A></B>(java.lang.Object&nbsp;element,
    boolean&nbsp;includeSuperclass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map of java.util.ArrayList.add(java.lang.Object), for compatibility to other JSON parsers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#put(short)">put</A></B>(short&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to place a short into the array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#set(int, java.lang.Object)">set</A></B>(int&nbsp;index,
    java.lang.Object&nbsp;element)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Over-ridden toString() method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#toString(int)">toString</A></B>(int&nbsp;indentDepth)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function to return a string of JSON text with specified indention.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write()">write</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a String of JSON text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(boolean)">write</A></B>(boolean&nbsp;verbose)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a String of JSON text, specifying verbosity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(int)">write</A></B>(int&nbsp;indentDepth)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this array into a String of JSON text, specifying verbosity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.OutputStream</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.OutputStream)">write</A></B>(java.io.OutputStream&nbsp;os)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a stream of JSON text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.OutputStream</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.OutputStream, boolean)">write</A></B>(java.io.OutputStream&nbsp;os,
      boolean&nbsp;verbose)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a stream of JSON text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.OutputStream</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.OutputStream, int)">write</A></B>(java.io.OutputStream&nbsp;os,
      int&nbsp;indentDepth)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a String of JSON text, specifying how many spaces should
 be used for each indent level.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.Writer</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.Writer)">write</A></B>(java.io.Writer&nbsp;writer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a stream of JSON text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.Writer</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.Writer, boolean)">write</A></B>(java.io.Writer&nbsp;writer,
      boolean&nbsp;verbose)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this object into a stream of JSON text, specifying verbosity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.Writer</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/json4j/JSONArray.html#write(java.io.Writer, int)">write</A></B>(java.io.Writer&nbsp;writer,
      int&nbsp;indentDepth)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert this array into a stream of JSON text, specifying verbosity.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.util.ArrayList"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.util.ArrayList</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clear, clone, contains, ensureCapacity, get, indexOf, isEmpty, lastIndexOf, remove, remove, removeRange, size, toArray, toArray, trimToSize</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractList"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.util.AbstractList</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, hashCode, iterator, listIterator, listIterator, subList</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.util.AbstractCollection"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.util.AbstractCollection</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>containsAll, removeAll, retainAll</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>finalize, getClass, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.util.List"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface java.util.List</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>containsAll, equals, hashCode, iterator, listIterator, listIterator, removeAll, retainAll, subList</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="JSONArray()"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>()</PRE>
<DL>
<DD>Create a new instance of this class.
<P>
</DL>
<HR>

<A NAME="JSONArray(int)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(int&nbsp;initialCapacity)</PRE>
<DL>
<DD>Create a new instance of this class with the specified initial capacity.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>initialCapacity</CODE> - The initial size to define the array as.</DL>
</DL>
<HR>

<A NAME="JSONArray(java.util.Collection)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.util.Collection&nbsp;col)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class based off the contents of the passed in collection
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>col</CODE> - The Collection of objects to add into this array.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when objects in the collection are not JSONable.
<DD><CODE>java.lang.NullPointerException</CODE> - Thrown if col is null.</DL>
</DL>
<HR>

<A NAME="JSONArray(java.lang.Object[])"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.lang.Object[]&nbsp;elems)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class based off the contents of the passed object array.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>elems</CODE> - The strings to add to a new JSONArray
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when objects in the array are not JSONable.</DL>
</DL>
<HR>

<A NAME="JSONArray(java.lang.Object[], boolean)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.lang.Object[]&nbsp;elems,
                 boolean&nbsp;includeSuperclass)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class based off the contents of the passed object array.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>elems</CODE> - The strings to add to a new JSONArray<DD><CODE>includeSuperclass</CODE> - For JavaBeans, include all superclass info.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when objects in the array are not JSONable.</DL>
</DL>
<HR>

<A NAME="JSONArray(java.util.Collection, boolean)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.util.Collection&nbsp;col,
                 boolean&nbsp;includeSuperclass)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class based off the contents of the passed
 in collection
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>col</CODE> - The Collection of objects to add into this array.<DD><CODE>includeSuperclass</CODE> - For JavaBeans, include all superclass info.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when objects in the collection are not JSONable.
 &throws NullPointerException Thrown if col is null.</DL>
</DL>
<HR>

<A NAME="JSONArray(java.lang.String)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.lang.String&nbsp;str)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the provided JSON object string.
 Note:  This is the same as calling new JSONArray(str, false);  Parsing in non-strict mode.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - The JSON array string to parse.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>
<HR>

<A NAME="JSONArray(java.lang.String, boolean)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.lang.String&nbsp;str,
                 boolean&nbsp;strict)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the provided JSON object string.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - The JSON array string to parse.<DD><CODE>strict</CODE> - Boolean denoting if the JSON should be parsed n strict mode, meaning unquoted strings and comments are not allowed.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>
<HR>

<A NAME="JSONArray(java.io.Reader)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.io.Reader&nbsp;rdr)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the data provided from the reader.  The reader content must be a JSON array string.
 Note:  The reader will not be closed, that is left to the caller.
 Note:  This is the same as calling new JSONArray(rdr, false);  Parsing in non-strict mode.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>rdr</CODE> - The Reader from which to read the JSON array string to parse.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>
<HR>

<A NAME="JSONArray(java.io.Reader, boolean)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.io.Reader&nbsp;rdr,
                 boolean&nbsp;strict)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the data provided from the reader.  The reader content must be a JSON array string.
 Note:  The reader will not be closed, that is left to the caller.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>rdr</CODE> - The Reader from which to read the JSON array string to parse.<DD><CODE>strict</CODE> - Boolean denoting if the JSON should be parsed n strict mode, meaning unquoted strings and comments are not allowed.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>
<HR>

<A NAME="JSONArray(java.io.InputStream)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.io.InputStream&nbsp;is)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the data provided from the input stream.  The stream content must be a JSON array string.
 Note:  The input stream content is assumed to be UTF-8 encoded.
 Note:  The InputStream will not be closed, that is left to the caller.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>is</CODE> - The InputStream from which to read the JSON array string to parse.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>
<HR>

<A NAME="JSONArray(java.io.InputStream, boolean)"><!-- --></A><H3>
JSONArray</H3>
<PRE>
public <B>JSONArray</B>(java.io.InputStream&nbsp;is,
                 boolean&nbsp;strict)
          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Create a new instance of this class from the data provided from the input stream.  The stream content must be a JSON array string.
 Note:  The input stream content is assumed to be UTF-8 encoded.
 Note:  The InputStream will not be closed, that is left to the caller.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>is</CODE> - The InputStream from which to read the JSON array string to parse.<DD><CODE>strict</CODE> - Boolean denoting if the JSON should be parsed n strict mode, meaning unquoted strings and comments are not allowed.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown when the string passed is null, or malformed JSON..</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getIndex(int)"><!-- --></A><H3>
getIndex</H3>
<PRE>
public java.lang.Object <B>getIndex</B>(int&nbsp;index)
                          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to get a JSONArray entry at a specified index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the rray to fetch the object from
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the index is outside the array bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="add(int, java.lang.Object)"><!-- --></A><H3>
add</H3>
<PRE>
public void <B>add</B>(int&nbsp;index,
                java.lang.Object&nbsp;element)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>add</CODE> in interface <CODE>java.util.List</CODE><DT><B>Overrides:</B><DD><CODE>add</CODE> in class <CODE>java.util.ArrayList</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="add(java.lang.Object, boolean)"><!-- --></A><H3>
add</H3>
<PRE>
public boolean <B>add</B>(java.lang.Object&nbsp;element,
                   boolean&nbsp;includeSuperclass)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="add(java.lang.Object)"><!-- --></A><H3>
add</H3>
<PRE>
public boolean <B>add</B>(java.lang.Object&nbsp;element)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>add</CODE> in interface <CODE>java.util.Collection</CODE><DT><B>Specified by:</B><DD><CODE>add</CODE> in interface <CODE>java.util.List</CODE><DT><B>Overrides:</B><DD><CODE>add</CODE> in class <CODE>java.util.ArrayList</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addAll(java.util.Collection)"><!-- --></A><H3>
addAll</H3>
<PRE>
public boolean <B>addAll</B>(java.util.Collection&nbsp;collection)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>addAll</CODE> in interface <CODE>java.util.Collection</CODE><DT><B>Specified by:</B><DD><CODE>addAll</CODE> in interface <CODE>java.util.List</CODE><DT><B>Overrides:</B><DD><CODE>addAll</CODE> in class <CODE>java.util.ArrayList</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addAll(int, java.util.Collection)"><!-- --></A><H3>
addAll</H3>
<PRE>
public boolean <B>addAll</B>(int&nbsp;index,
                      java.util.Collection&nbsp;collection)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>addAll</CODE> in interface <CODE>java.util.List</CODE><DT><B>Overrides:</B><DD><CODE>addAll</CODE> in class <CODE>java.util.ArrayList</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="set(int, java.lang.Object)"><!-- --></A><H3>
set</H3>
<PRE>
public java.lang.Object <B>set</B>(int&nbsp;index,
                            java.lang.Object&nbsp;element)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>set</CODE> in interface <CODE>java.util.List</CODE><DT><B>Overrides:</B><DD><CODE>set</CODE> in class <CODE>java.util.ArrayList</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     java.lang.Object&nbsp;element)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Map of java.util.ArrayList.add(int, java.lang.Object), for compatibility to other JSON parsers.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - in the case of index out of bounds, etc.<DT><B>See Also:</B><DD><CODE>ArrayList.add(int, java.lang.Object)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="put(java.lang.Object)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.lang.Object&nbsp;element)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Map of java.util.ArrayList.add(java.lang.Object), for compatibility to other JSON parsers.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE><DT><B>See Also:</B><DD><CODE>ArrayList.add(java.lang.Object)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="put(java.lang.Object, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.lang.Object&nbsp;element,
                     boolean&nbsp;includeSuperclass)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Map of java.util.ArrayList.add(java.lang.Object), for compatibility to other JSON parsers.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE><DT><B>See Also:</B><DD><CODE>ArrayList.add(java.lang.Object)</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="put(int, java.util.Map)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     java.util.Map&nbsp;value)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a java.util.Map instance in the array.  It will convert the map to a JSONObject if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the Map (or coverted map).<DD><CODE>value</CODE> - An instance of a java.util.Map to insert into the array.  Will convert to JSONObject if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the map cannot be converted to something JSONAble or the index is out of bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, java.util.Map, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     java.util.Map&nbsp;value,
                     boolean&nbsp;includeSuperclass)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a java.util.Map instance in the array.  It will convert the map to a JSONObject if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the Map (or coverted map).<DD><CODE>value</CODE> - An instance of a java.util.Map to insert into the array.  Will convert to JSONObject if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the map cannot be converted to something JSONAble or the index is out of bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.util.Map)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.util.Map&nbsp;value)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONObject if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - An instance of a java.util.Map to insert into the array.  Will convert to JSONObject if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the map cannot be converted to something JSONAble.</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.util.Map, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.util.Map&nbsp;value,
                     boolean&nbsp;includeSuperclass)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONObject if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - An instance of a java.util.Map to insert into the array.  Will convert to JSONObject if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the map cannot be converted to something JSONAble.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, java.util.Collection)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     java.util.Collection&nbsp;value)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONArray if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the Collection.<DD><CODE>value</CODE> - An instance of a java.util.Collection to insert into the array.  Will convert to JSONArray if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the collection cannot be converted to something JSONAble or the index is out of bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, java.util.Collection, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     java.util.Collection&nbsp;value,
                     boolean&nbsp;includeSuperclass)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONArray if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the Collection.<DD><CODE>value</CODE> - An instance of a java.util.Collection to insert into the array.  Will convert to JSONArray if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the collection cannot be converted to something JSONAble or the index is out of bounds.</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.util.Collection)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.util.Collection&nbsp;value)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONArray if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - An instance of a java.util.Collection to insert into the array.  Will convert to JSONArray if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the collection cannot be converted to something JSONAble.</DL>
</DD>
</DL>
<HR>

<A NAME="put(java.util.Collection, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(java.util.Collection&nbsp;value,
                     boolean&nbsp;includeSuperclass)
              throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Method to place a map into the array.  It will convert the map to a JSONArray if necessary.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - An instance of a java.util.Collection to insert into the array.  Will convert to JSONArray if necessary.
<DT><B>Returns:</B><DD>A reference to this array instance.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if the collection cannot be converted to something JSONAble.</DL>
</DD>
</DL>
<HR>

<A NAME="put(long)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(long&nbsp;value)</PRE>
<DL>
<DD>Method to place a long into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - A long
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, long)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     long&nbsp;value)</PRE>
<DL>
<DD>Method to place a long into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the long.<DD><CODE>value</CODE> - A long
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;value)</PRE>
<DL>
<DD>Method to place a int into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - An int
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, int)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     int&nbsp;value)</PRE>
<DL>
<DD>Method to place an int into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the int.<DD><CODE>value</CODE> - An int
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(short)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(short&nbsp;value)</PRE>
<DL>
<DD>Method to place a short into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - A short
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, short)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     short&nbsp;value)</PRE>
<DL>
<DD>Method to place a short into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the short.<DD><CODE>value</CODE> - A short
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(double)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(double&nbsp;value)</PRE>
<DL>
<DD>Method to place a double into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - A double
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, double)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     double&nbsp;value)</PRE>
<DL>
<DD>Method to place a double into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the double.<DD><CODE>value</CODE> - A double
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(boolean&nbsp;value)</PRE>
<DL>
<DD>Method to place a int into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>value</CODE> - A boolean
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="put(int, boolean)"><!-- --></A><H3>
put</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>put</B>(int&nbsp;index,
                     boolean&nbsp;value)</PRE>
<DL>
<DD>Method to place a boolean into the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position in the array to place the int.<DD><CODE>value</CODE> - A boolean
<DT><B>Returns:</B><DD>A reference to this array instance.</DL>
</DD>
</DL>
<HR>

<A NAME="getBoolean(int)"><!-- --></A><H3>
getBoolean</H3>
<PRE>
public boolean <B>getBoolean</B>(int&nbsp;index)
                   throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as a boolean.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>boolean value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not Boolean or a string of 'true' or 'false'</DL>
</DD>
</DL>
<HR>

<A NAME="getDouble(int)"><!-- --></A><H3>
getDouble</H3>
<PRE>
public double <B>getDouble</B>(int&nbsp;index)
                 throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as a double.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>double value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not Number.</DL>
</DD>
</DL>
<HR>

<A NAME="getLong(int)"><!-- --></A><H3>
getLong</H3>
<PRE>
public long <B>getLong</B>(int&nbsp;index)
             throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as a long.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>long value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not Number.</DL>
</DD>
</DL>
<HR>

<A NAME="getInt(int)"><!-- --></A><H3>
getInt</H3>
<PRE>
public int <B>getInt</B>(int&nbsp;index)
           throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as an int.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>int value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not Number.</DL>
</DD>
</DL>
<HR>

<A NAME="getShort(int)"><!-- --></A><H3>
getShort</H3>
<PRE>
public short <B>getShort</B>(int&nbsp;index)
               throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as a short.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>short value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not Number.</DL>
</DD>
</DL>
<HR>

<A NAME="getString(int)"><!-- --></A><H3>
getString</H3>
<PRE>
public java.lang.String <B>getString</B>(int&nbsp;index)
                           throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to obtain a value at the specified index as a string.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index of the item to retrieve.
<DT><B>Returns:</B><DD>string value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - if the index is outside the range or if the type at the position was not an object with a toString() function..</DL>
</DD>
</DL>
<HR>

<A NAME="getJSONObject(int)"><!-- --></A><H3>
getJSONObject</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONObject.html" title="class in org.apache.wink.json4j">JSONObject</A> <B>getJSONObject</B>(int&nbsp;index)
                         throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Utility method to obtain the specified key as a JSONObject
 Only values that are instances of JSONObject will be returned.  A null will generate an exception.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index to look up.
 throws JSONException Thrown when the type returned by get(key) is not a JSONObject instance.
<DT><B>Returns:</B><DD>A JSONObject value if the value stored for key is an instance or subclass of JSONObject.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getJSONArray(int)"><!-- --></A><H3>
getJSONArray</H3>
<PRE>
public <A HREF="../../../../org/apache/wink/json4j/JSONArray.html" title="class in org.apache.wink.json4j">JSONArray</A> <B>getJSONArray</B>(int&nbsp;index)
                       throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Utility method to obtain the specified index as a JSONArray
 Only values that are instances of JSONArray will be returned.  A null will generate an exception.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The index to look up.
 throws JSONException Thrown when the type returned by get(key) is not a Long instance, or cannot be converted to a long..
<DT><B>Returns:</B><DD>A JSONArray value if the value stored for key is an instance or subclass of JSONArray.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="isNull(int)"><!-- --></A><H3>
isNull</H3>
<PRE>
public boolean <B>isNull</B>(int&nbsp;index)</PRE>
<DL>
<DD>Utility function for testing if an element at index 'idx' is null or not.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>boolean indicating if an index is null or not.  Will also return true for indexes outside the size of the array.</DL>
</DD>
</DL>
<HR>

<A NAME="length()"><!-- --></A><H3>
length</H3>
<PRE>
public int <B>length</B>()</PRE>
<DL>
<DD>Utility function that maps ArrayList.size() to length, for compatibility to other JSON parsers.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The number of elements in this JSONArray.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.OutputStream)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.OutputStream <B>write</B>(java.io.OutputStream&nbsp;os)
                           throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a stream of JSON text.  Same as calling write(os,false);
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.OutputStream)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>os</CODE> - The output stream to write data to.
<DT><B>Returns:</B><DD>The passed in OutputStream.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.OutputStream, boolean)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.OutputStream <B>write</B>(java.io.OutputStream&nbsp;os,
                                  boolean&nbsp;verbose)
                           throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a stream of JSON text.  Same as calling write(writer,false);
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.OutputStream, boolean)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>os</CODE> - The output stream to write data to.  Output stream characters will be serialized as UTF-8.<DD><CODE>verbose</CODE> - Whether or not to write the JSON text in a verbose format.
<DT><B>Returns:</B><DD>The passed in OutputStream.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.OutputStream, int)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.OutputStream <B>write</B>(java.io.OutputStream&nbsp;os,
                                  int&nbsp;indentDepth)
                           throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a String of JSON text, specifying how many spaces should
 be used for each indent level.  Output stream characters will be serialized as UTF-8.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.OutputStream, int)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>indentDepth</CODE> - How many spaces to use for each indent level.  Should be one to eight.  
 Less than one means no intending, greater than 8 and it will just use tab.
<DT><B>Returns:</B><DD>The passed in OutputStream.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.Writer)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.Writer <B>write</B>(java.io.Writer&nbsp;writer)
                     throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a stream of JSON text.  Same as calling write(writer,false);
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.Writer)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>writer</CODE> - The writer which to write the JSON text to.
<DT><B>Returns:</B><DD>The passed in writer.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.Writer, boolean)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.Writer <B>write</B>(java.io.Writer&nbsp;writer,
                            boolean&nbsp;verbose)
                     throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a stream of JSON text, specifying verbosity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.Writer, boolean)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>writer</CODE> - The writer which to write the JSON text to.
<DT><B>Returns:</B><DD>The passed in writer.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(java.io.Writer, int)"><!-- --></A><H3>
write</H3>
<PRE>
public java.io.Writer <B>write</B>(java.io.Writer&nbsp;writer,
                            int&nbsp;indentDepth)
                     throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this array into a stream of JSON text, specifying verbosity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(java.io.Writer, int)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>writer</CODE> - The writer which to write the JSON text to.<DD><CODE>indentDepth</CODE> - How many spaces to use for each indent level.  Should be one to eight.
<DT><B>Returns:</B><DD>The passed in writer.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(boolean)"><!-- --></A><H3>
write</H3>
<PRE>
public java.lang.String <B>write</B>(boolean&nbsp;verbose)
                       throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a String of JSON text, specifying verbosity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(boolean)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>verbose</CODE> - Whether or not to write in compressed for formatted Strings.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write(int)"><!-- --></A><H3>
write</H3>
<PRE>
public java.lang.String <B>write</B>(int&nbsp;indentDepth)
                       throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this array into a String of JSON text, specifying verbosity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write(int)">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>indentDepth</CODE> - How many spaces to use for each indent level.  Should be one to eight.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="write()"><!-- --></A><H3>
write</H3>
<PRE>
public java.lang.String <B>write</B>()
                       throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Convert this object into a String of JSON text.  Same as write(false);
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html#write()">write</A></CODE> in interface <CODE><A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j">JSONArtifact</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown on IO errors during serialization.</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD>Over-ridden toString() method.  Returns the same value as write(), which is a compact JSON String.
 If an error occurs in the serialization, the return will be of format: JSON Generation Error: [<some error>]
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.util.AbstractCollection</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toString(int)"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>(int&nbsp;indentDepth)
                          throws <A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></PRE>
<DL>
<DD>Function to return a string of JSON text with specified indention.  Returns the same value as write(indentDepth).
 If an error occurs in the serialization, the return will be of format: JSON Generation Error: [<some error>]
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/json4j/JSONException.html" title="class in org.apache.wink.json4j">JSONException</A></CODE> - Thrown if an error occurs during JSON generation.</DL>
</DD>
</DL>
<HR>

<A NAME="join(java.lang.String)"><!-- --></A><H3>
join</H3>
<PRE>
public java.lang.String <B>join</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD>Method to mimic the behavior of the JavaScript array join function
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - The string delimiter to place between joined array elements in the output string.
<DT><B>Returns:</B><DD>A string of all the elements joined together.</DL>
</DD>
</DL>
<HR>

<A NAME="opt(int)"><!-- --></A><H3>
opt</H3>
<PRE>
public java.lang.Object <B>opt</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to get the object at that position, or null if outside the array range.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or null</DL>
</DD>
</DL>
<HR>

<A NAME="opt(int, java.lang.Object)"><!-- --></A><H3>
opt</H3>
<PRE>
public java.lang.Object <B>opt</B>(int&nbsp;index,
                            java.lang.Object&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to get the object at that position, or null if outside the array range.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or defaultValue</DL>
</DD>
</DL>
<HR>

<A NAME="optBoolean(int)"><!-- --></A><H3>
optBoolean</H3>
<PRE>
public boolean <B>optBoolean</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as an boolean, or 'false' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or false</DL>
</DD>
</DL>
<HR>

<A NAME="optBoolean(int, boolean)"><!-- --></A><H3>
optBoolean</H3>
<PRE>
public boolean <B>optBoolean</B>(int&nbsp;index,
                          boolean&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as an boolean, or 'defaultValue' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The array index to get.<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or false</DL>
</DD>
</DL>
<HR>

<A NAME="optInt(int)"><!-- --></A><H3>
optInt</H3>
<PRE>
public int <B>optInt</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as an int, or '0' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or 0</DL>
</DD>
</DL>
<HR>

<A NAME="optInt(int, int)"><!-- --></A><H3>
optInt</H3>
<PRE>
public int <B>optInt</B>(int&nbsp;index,
                  int&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as an int, or defaultValue if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or 0</DL>
</DD>
</DL>
<HR>

<A NAME="optLong(int)"><!-- --></A><H3>
optLong</H3>
<PRE>
public long <B>optLong</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as a long, or '0' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or 0</DL>
</DD>
</DL>
<HR>

<A NAME="optLong(int, long)"><!-- --></A><H3>
optLong</H3>
<PRE>
public long <B>optLong</B>(int&nbsp;index,
                    long&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as a long, or defaultValue if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
     v* @return - value or defaultValue</DL>
</DD>
</DL>
<HR>

<A NAME="optShort(int)"><!-- --></A><H3>
optShort</H3>
<PRE>
public short <B>optShort</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as a short, or '0' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or 0</DL>
</DD>
</DL>
<HR>

<A NAME="optShort(int, short)"><!-- --></A><H3>
optShort</H3>
<PRE>
public short <B>optShort</B>(int&nbsp;index,
                      short&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as a short, or '0' if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or defaultValue</DL>
</DD>
</DL>
<HR>

<A NAME="optDouble(int)"><!-- --></A><H3>
optDouble</H3>
<PRE>
public double <B>optDouble</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as a double, or Double.NaN if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or Double.NaN</DL>
</DD>
</DL>
<HR>

<A NAME="optDouble(int, double)"><!-- --></A><H3>
optDouble</H3>
<PRE>
public double <B>optDouble</B>(int&nbsp;index,
                        double&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as a double, or Double.NaN if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or defaultValue</DL>
</DD>
</DL>
<HR>

<A NAME="optString(int)"><!-- --></A><H3>
optString</H3>
<PRE>
public java.lang.String <B>optString</B>(int&nbsp;index)</PRE>
<DL>
<DD>Method to obtain the value at index as a String, or null if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get
<DT><B>Returns:</B><DD>- value or null</DL>
</DD>
</DL>
<HR>

<A NAME="optString(int, java.lang.String)"><!-- --></A><H3>
optString</H3>
<PRE>
public java.lang.String <B>optString</B>(int&nbsp;index,
                                  java.lang.String&nbsp;defaultValue)</PRE>
<DL>
<DD>Method to obtain the value at index as a String, or defaultValue if outside the array.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - the array index to get<DD><CODE>defaultValue</CODE> - the value to return if index is outside the array.
<DT><B>Returns:</B><DD>- value or defaultValue</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/JSONArray.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSON.html" title="class in org.apache.wink.json4j"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/json4j/JSONArtifact.html" title="interface in org.apache.wink.json4j"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/json4j/JSONArray.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="JSONArray.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.util.AbstractList">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2009-2010 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
