<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Tue Aug 30 09:50:46 EDT 2016 -->
<title>J-Index</title>
<meta name="date" content="2016-08-30">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="J-Index";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-9.html">Prev Letter</a></li>
<li><a href="index-11.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-10.html" target="_top">Frames</a></li>
<li><a href="index-10.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;<a name="_J_">
<!--   -->
</a>
<h2 class="title">J</h2>
<dl>
<dt><a href="../org/apache/pirk/serialization/JavaSerializer.html" title="class in org.apache.pirk.serialization"><span class="strong">JavaSerializer</span></a> - Class in <a href="../org/apache/pirk/serialization/package-summary.html">org.apache.pirk.serialization</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/serialization/JavaSerializer.html#JavaSerializer()">JavaSerializer()</a></span> - Constructor for class org.apache.pirk.serialization.<a href="../org/apache/pirk/serialization/JavaSerializer.html" title="class in org.apache.pirk.serialization">JavaSerializer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/test/distributed/DistributedTestDriver.html#JSON_PIR_INPUT_FILE_PROPERTY">JSON_PIR_INPUT_FILE_PROPERTY</a></span> - Static variable in class org.apache.pirk.test.distributed.<a href="../org/apache/pirk/test/distributed/DistributedTestDriver.html" title="class in org.apache.pirk.test.distributed">DistributedTestDriver</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonArrayStringToArrayList(java.lang.String)">jsonArrayStringToArrayList(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json array format string and output an ArrayList</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonArrayStringtoArrayWritable(java.lang.String)">jsonArrayStringtoArrayWritable(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json array format string and output an ArrayWritable</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonArrayStringToList(java.lang.String)">jsonArrayStringToList(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json array format string and output a String array</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonArrayStringToWritableArrayWritable(java.lang.String)">jsonArrayStringToWritableArrayWritable(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json array format string and output a WritableArrayWritable</div>
</dd>
<dt><a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormat.html" title="class in org.apache.pirk.inputformat.hadoop.json"><span class="strong">JSONInputFormat</span></a> - Class in <a href="../org/apache/pirk/inputformat/hadoop/json/package-summary.html">org.apache.pirk.inputformat.hadoop.json</a></dt>
<dd>
<div class="block">Custom import format to parse files string representations of JSON, one JSON string per line</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormat.html#JSONInputFormat()">JSONInputFormat()</a></span> - Constructor for class org.apache.pirk.inputformat.hadoop.json.<a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormat.html" title="class in org.apache.pirk.inputformat.hadoop.json">JSONInputFormat</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormatBase.html" title="class in org.apache.pirk.inputformat.hadoop.json"><span class="strong">JSONInputFormatBase</span></a> - Class in <a href="../org/apache/pirk/inputformat/hadoop/json/package-summary.html">org.apache.pirk.inputformat.hadoop.json</a></dt>
<dd>
<div class="block">Custom import format to parse files string representations of JSON, one JSON string per line extending BaseInputFormat</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormatBase.html#JSONInputFormatBase()">JSONInputFormatBase()</a></span> - Constructor for class org.apache.pirk.inputformat.hadoop.json.<a href="../org/apache/pirk/inputformat/hadoop/json/JSONInputFormatBase.html" title="class in org.apache.pirk.inputformat.hadoop.json">JSONInputFormatBase</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../org/apache/pirk/inputformat/hadoop/json/JSONRecordReader.html" title="class in org.apache.pirk.inputformat.hadoop.json"><span class="strong">JSONRecordReader</span></a> - Class in <a href="../org/apache/pirk/inputformat/hadoop/json/package-summary.html">org.apache.pirk.inputformat.hadoop.json</a></dt>
<dd>
<div class="block">Record reader to parse files of JSON string representations, one per line</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/inputformat/hadoop/json/JSONRecordReader.html#JSONRecordReader()">JSONRecordReader()</a></span> - Constructor for class org.apache.pirk.inputformat.hadoop.json.<a href="../org/apache/pirk/inputformat/hadoop/json/JSONRecordReader.html" title="class in org.apache.pirk.inputformat.hadoop.json">JSONRecordReader</a></dt>
<dd>&nbsp;</dd>
<dt><a href="../org/apache/pirk/serialization/JsonSerializer.html" title="class in org.apache.pirk.serialization"><span class="strong">JsonSerializer</span></a> - Class in <a href="../org/apache/pirk/serialization/package-summary.html">org.apache.pirk.serialization</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/serialization/JsonSerializer.html#JsonSerializer()">JsonSerializer()</a></span> - Constructor for class org.apache.pirk.serialization.<a href="../org/apache/pirk/serialization/JsonSerializer.html" title="class in org.apache.pirk.serialization">JsonSerializer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonStringToMap(java.lang.String,%20org.apache.pirk.schema.data.DataSchema)">jsonStringToMap(String, DataSchema)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json string and output a Map<String, Object> with arrays as ArrayList<String> objects and single values as String objects</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonStringToMapWritable(java.lang.String)">jsonStringToMapWritable(String)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json string and output a MapWritable with arrays as JSON formatted String objects</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonStringToMapWritableWithArrayWritable(java.lang.String,%20org.apache.pirk.schema.data.DataSchema)">jsonStringToMapWritableWithArrayWritable(String, DataSchema)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json string and output a MapWritable with arrays as WritableArrayWritable objects</div>
</dd>
<dt><span class="strong"><a href="../org/apache/pirk/utils/StringUtils.html#jsonStringToMapWritableWithWritableArrayWritable(java.lang.String,%20org.apache.pirk.schema.data.DataSchema)">jsonStringToMapWritableWithWritableArrayWritable(String, DataSchema)</a></span> - Static method in class org.apache.pirk.utils.<a href="../org/apache/pirk/utils/StringUtils.html" title="class in org.apache.pirk.utils">StringUtils</a></dt>
<dd>
<div class="block">Method to take an input json string and output a MapWritable with arrays as WritableArrayWritable objects</div>
</dd>
</dl>
<a href="index-1.html">A</a>&nbsp;<a href="index-2.html">B</a>&nbsp;<a href="index-3.html">C</a>&nbsp;<a href="index-4.html">D</a>&nbsp;<a href="index-5.html">E</a>&nbsp;<a href="index-6.html">F</a>&nbsp;<a href="index-7.html">G</a>&nbsp;<a href="index-8.html">H</a>&nbsp;<a href="index-9.html">I</a>&nbsp;<a href="index-10.html">J</a>&nbsp;<a href="index-11.html">K</a>&nbsp;<a href="index-12.html">L</a>&nbsp;<a href="index-13.html">M</a>&nbsp;<a href="index-14.html">N</a>&nbsp;<a href="index-15.html">O</a>&nbsp;<a href="index-16.html">P</a>&nbsp;<a href="index-17.html">Q</a>&nbsp;<a href="index-18.html">R</a>&nbsp;<a href="index-19.html">S</a>&nbsp;<a href="index-20.html">T</a>&nbsp;<a href="index-21.html">U</a>&nbsp;<a href="index-22.html">V</a>&nbsp;<a href="index-23.html">W</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li>Use</li>
<li><a href="../overview-tree.html">Tree</a></li>
<li><a href="../deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="index-9.html">Prev Letter</a></li>
<li><a href="index-11.html">Next Letter</a></li>
</ul>
<ul class="navList">
<li><a href="../index.html?index-filesindex-10.html" target="_top">Frames</a></li>
<li><a href="index-10.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
