<!DOCTYPE html>
<html>
  



<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.
">
  <meta name="keywords" content="cassandra, apache, apache cassandra, distributed storage, key value store, scalability, bigtable, dynamo" />
  <meta name="robots" content="index,follow" />
  <meta name="language" content="en" />  

  <title>Documentation</title>

  <link rel="canonical" href="http://cassandra.apache.org/doc/3.10/cql/json.html">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
  <link rel="stylesheet" href="./../../../css/style.css">
  
  <link rel="stylesheet" href="./../../../css/sphinx.css">
  

   <link rel="top" title="Apache Cassandra Documentation v3.10" href="../index.html"/> <link rel="up" title="The Cassandra Query Language (CQL)" href="index.html"/> <link rel="next" title="Triggers" href="triggers.html"/> <link rel="prev" title="Functions" href="functions.html"/> 
</head>

  <body>
    <!-- breadcrumbs -->
<div class="topnav">
  <div class="container breadcrumb-container">
    <ul class="breadcrumb">
      <li>
        <div class="dropdown">
          <img class="asf-logo" src="./../../../img/asf_feather.png" />
          <a data-toggle="dropdown" href="#">Apache Software Foundation <span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
            <li><a href="http://www.apache.org">Apache Homepage</a></li>
            <li><a href="http://www.apache.org/licenses/">License</a></li>
            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
            <li><a href="http://www.apache.org/security/">Security</a></li>
          </ul>
        </div>
      </li>

      
      <li><a href="./../../../">Apache Cassandra</a></li>
      

      
        
        <li><a href="./../../../doc">Documentation</a></li>
        
      

      
      <li><a href="./">The Cassandra Query Language (CQL)</a></li>
      

      
      <li>JSON Support</li>
      
    </ul>
  </div>

  <!-- navbar -->
  <nav class="navbar navbar-default navbar-static-top" role="navigation">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#cassandra-menu" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="./../../../"><img src="./../../../img/cassandra_logo.png" alt="Apache Cassandra logo" /></a>
      </div><!-- /.navbar-header -->

      <div id="cassandra-menu" class="collapse navbar-collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="./../../../">Home</a></li>
          <li><a href="./../../../download/">Download</a></li>
          <li><a href="./../../../doc/">Documentation</a></li>
          <li><a href="./../../../community/">Community</a></li>
        </ul>
      </div><!-- /#cassandra-menu -->

      
    </div>
  </nav><!-- /.navbar -->
</div><!-- /.topnav -->

    <div class="container-fluid">
  <div class="row">
    <div class="col-md-2">
      <div class="doc-navigation">
        <div class="doc-menu" role="navigation">
          <div class="navbar-header">
            <button type="button" class="pull-left navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse">
              <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
          </div>
          <div class="navbar-collapse collapse sidebar-navbar-collapse">
            <form id="doc-search-form" class="navbar-form" action="../search.html" method="get" role="search">
              <div class="form-group">
                <input type="text" size="30" class="form-control input-sm" name="q" placeholder="Search docs">
                <input type="hidden" name="check_keywords" value="yes" />
                <input type="hidden" name="area" value="default" />
              </div>
            </form>
            
            
            
            <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../architecture/index.html">Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="../data_modeling/index.html">Data Modeling</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">The Cassandra Query Language (CQL)</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="definitions.html">Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="types.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="ddl.html">Data Definition</a></li>
<li class="toctree-l2"><a class="reference internal" href="dml.html">Data Manipulation</a></li>
<li class="toctree-l2"><a class="reference internal" href="indexes.html">Secondary Indexes</a></li>
<li class="toctree-l2"><a class="reference internal" href="mvs.html">Materialized Views</a></li>
<li class="toctree-l2"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="functions.html">Functions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">JSON Support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#select-json">SELECT JSON</a></li>
<li class="toctree-l3"><a class="reference internal" href="#insert-json">INSERT JSON</a></li>
<li class="toctree-l3"><a class="reference internal" href="#json-encoding-of-cassandra-data-types">JSON Encoding of Cassandra Data Types</a></li>
<li class="toctree-l3"><a class="reference internal" href="#the-fromjson-function">The fromJson() Function</a></li>
<li class="toctree-l3"><a class="reference internal" href="#the-tojson-function">The toJson() Function</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="triggers.html">Triggers</a></li>
<li class="toctree-l2"><a class="reference internal" href="appendices.html">Appendices</a></li>
<li class="toctree-l2"><a class="reference internal" href="changes.html">Changes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../configuration/index.html">Configuring Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../operating/index.html">Operating Cassandra</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Cassandra Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../troubleshooting/index.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="../development/index.html">Cassandra Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">Frequently Asked Questions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../bugs.html">Reporting Bugs and Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contactus.html">Contact us</a></li>
</ul>

            
            
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>
    <div class="col-md-8">
      <div class="content doc-content">
        <div class="container">
          
  <div class="section" id="json-support">
<span id="cql-json"></span><h1>JSON Support<a class="headerlink" href="#json-support" title="Permalink to this headline">¶</a></h1>
<p>Cassandra 2.2 introduces JSON support to <a class="reference internal" href="dml.html#select-statement"><span class="std std-ref">SELECT</span></a> and <a class="reference internal" href="dml.html#insert-statement"><span class="std std-ref">INSERT</span></a>
statements. This support does not fundamentally alter the CQL API (for example, the schema is still enforced), it simply
provides a convenient way to work with JSON documents.</p>
<div class="section" id="select-json">
<h2>SELECT JSON<a class="headerlink" href="#select-json" title="Permalink to this headline">¶</a></h2>
<p>With <code class="docutils literal"><span class="pre">SELECT</span></code> statements, the <code class="docutils literal"><span class="pre">JSON</span></code> keyword can be used to return each row as a single <code class="docutils literal"><span class="pre">JSON</span></code> encoded map. The
remainder of the <code class="docutils literal"><span class="pre">SELECT</span></code> statement behavior is the same.</p>
<p>The result map keys are the same as the column names in a normal result set. For example, a statement like <code class="docutils literal"><span class="pre">SELECT</span> <span class="pre">JSON</span>
<span class="pre">a,</span> <span class="pre">ttl(b)</span> <span class="pre">FROM</span> <span class="pre">...</span></code> would result in a map with keys <code class="docutils literal"><span class="pre">&quot;a&quot;</span></code> and <code class="docutils literal"><span class="pre">&quot;ttl(b)&quot;</span></code>. However, this is one notable exception:
for symmetry with <code class="docutils literal"><span class="pre">INSERT</span> <span class="pre">JSON</span></code> behavior, case-sensitive column names with upper-case letters will be surrounded with
double quotes. For example, <code class="docutils literal"><span class="pre">SELECT</span> <span class="pre">JSON</span> <span class="pre">myColumn</span> <span class="pre">FROM</span> <span class="pre">...</span></code> would result in a map key <code class="docutils literal"><span class="pre">&quot;\&quot;myColumn\&quot;&quot;</span></code> (note the
escaped quotes).</p>
<p>The map values will <code class="docutils literal"><span class="pre">JSON</span></code>-encoded representations (as described below) of the result set values.</p>
</div>
<div class="section" id="insert-json">
<h2>INSERT JSON<a class="headerlink" href="#insert-json" title="Permalink to this headline">¶</a></h2>
<p>With <code class="docutils literal"><span class="pre">INSERT</span></code> statements, the new <code class="docutils literal"><span class="pre">JSON</span></code> keyword can be used to enable inserting a <code class="docutils literal"><span class="pre">JSON</span></code> encoded map as a single
row. The format of the <code class="docutils literal"><span class="pre">JSON</span></code> map should generally match that returned by a <code class="docutils literal"><span class="pre">SELECT</span> <span class="pre">JSON</span></code> statement on the same
table. In particular, case-sensitive column names should be surrounded with double quotes. For example, to insert into a
table with two columns named &#8220;myKey&#8221; and &#8220;value&#8221;, you would do the following:</p>
<div class="highlight-cql"><div class="highlight"><pre><span></span><span class="k">INSERT</span> <span class="k">INTO</span> <span class="n">mytable</span> <span class="k">JSON</span> <span class="s1">&#39;{ &quot;\&quot;myKey\&quot;&quot;: 0, &quot;value&quot;: 0}&#39;</span>
</pre></div>
</div>
<p>By default (or if <code class="docutils literal"><span class="pre">DEFAULT</span> <span class="pre">NULL</span></code> is explicitly used), a column omitted from the <code class="docutils literal"><span class="pre">JSON</span></code> map will be set to <code class="docutils literal"><span class="pre">NULL</span></code>,
meaning that any pre-existing value for that column will be removed (resulting in a tombstone being created).
Alternatively, if the <code class="docutils literal"><span class="pre">DEFAULT</span> <span class="pre">UNSET</span></code> directive is used after the value, omitted column values will be left unset,
meaning that pre-existing values for those column will be preserved.</p>
</div>
<div class="section" id="json-encoding-of-cassandra-data-types">
<h2>JSON Encoding of Cassandra Data Types<a class="headerlink" href="#json-encoding-of-cassandra-data-types" title="Permalink to this headline">¶</a></h2>
<p>Where possible, Cassandra will represent and accept data types in their native <code class="docutils literal"><span class="pre">JSON</span></code> representation. Cassandra will
also accept string representations matching the CQL literal format for all single-field types. For example, floats,
ints, UUIDs, and dates can be represented by CQL literal strings. However, compound types, such as collections, tuples,
and user-defined types must be represented by native <code class="docutils literal"><span class="pre">JSON</span></code> collections (maps and lists) or a JSON-encoded string
representation of the collection.</p>
<p>The following table describes the encodings that Cassandra will accept in <code class="docutils literal"><span class="pre">INSERT</span> <span class="pre">JSON</span></code> values (and <code class="docutils literal"><span class="pre">fromJson()</span></code>
arguments) as well as the format Cassandra will use when returning data for <code class="docutils literal"><span class="pre">SELECT</span> <span class="pre">JSON</span></code> statements (and
<code class="docutils literal"><span class="pre">fromJson()</span></code>):</p>
<table border="1" class="docutils">
<colgroup>
<col width="13%" />
<col width="21%" />
<col width="13%" />
<col width="54%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Type</th>
<th class="head">Formats accepted</th>
<th class="head">Return format</th>
<th class="head">Notes</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal"><span class="pre">ascii</span></code></td>
<td>string</td>
<td>string</td>
<td>Uses JSON&#8217;s <code class="docutils literal"><span class="pre">\u</span></code> character escape</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">bigint</span></code></td>
<td>integer, string</td>
<td>integer</td>
<td>String must be valid 64 bit integer</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">blob</span></code></td>
<td>string</td>
<td>string</td>
<td>String should be 0x followed by an even number of hex digits</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">boolean</span></code></td>
<td>boolean, string</td>
<td>boolean</td>
<td>String must be &#8220;true&#8221; or &#8220;false&#8221;</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">date</span></code></td>
<td>string</td>
<td>string</td>
<td>Date in format <code class="docutils literal"><span class="pre">YYYY-MM-DD</span></code>, timezone UTC</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">decimal</span></code></td>
<td>integer, float, string</td>
<td>float</td>
<td>May exceed 32 or 64-bit IEEE-754 floating point precision in
client-side decoder</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">double</span></code></td>
<td>integer, float, string</td>
<td>float</td>
<td>String must be valid integer or float</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">float</span></code></td>
<td>integer, float, string</td>
<td>float</td>
<td>String must be valid integer or float</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">inet</span></code></td>
<td>string</td>
<td>string</td>
<td>IPv4 or IPv6 address</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">int</span></code></td>
<td>integer, string</td>
<td>integer</td>
<td>String must be valid 32 bit integer</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">list</span></code></td>
<td>list, string</td>
<td>list</td>
<td>Uses JSON&#8217;s native list representation</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">map</span></code></td>
<td>map, string</td>
<td>map</td>
<td>Uses JSON&#8217;s native map representation</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">smallint</span></code></td>
<td>integer, string</td>
<td>integer</td>
<td>String must be valid 16 bit integer</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">set</span></code></td>
<td>list, string</td>
<td>list</td>
<td>Uses JSON&#8217;s native list representation</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">text</span></code></td>
<td>string</td>
<td>string</td>
<td>Uses JSON&#8217;s <code class="docutils literal"><span class="pre">\u</span></code> character escape</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">time</span></code></td>
<td>string</td>
<td>string</td>
<td>Time of day in format <code class="docutils literal"><span class="pre">HH-MM-SS[.fffffffff]</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">timestamp</span></code></td>
<td>integer, string</td>
<td>string</td>
<td>A timestamp. Strings constant allows to input <a class="reference internal" href="types.html#timestamps"><span class="std std-ref">timestamps
as dates</span></a>. Datestamps with format <code class="docutils literal"><span class="pre">YYYY-MM-DD</span>
<span class="pre">HH:MM:SS.SSS</span></code> are returned.</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">timeuuid</span></code></td>
<td>string</td>
<td>string</td>
<td>Type 1 UUID. See <a class="reference internal" href="definitions.html#grammar-token-constant"><code class="xref std std-token docutils literal"><span class="pre">constant</span></code></a> for the UUID format</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">tinyint</span></code></td>
<td>integer, string</td>
<td>integer</td>
<td>String must be valid 8 bit integer</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">tuple</span></code></td>
<td>list, string</td>
<td>list</td>
<td>Uses JSON&#8217;s native list representation</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">UDT</span></code></td>
<td>map, string</td>
<td>map</td>
<td>Uses JSON&#8217;s native map representation with field names as keys</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">uuid</span></code></td>
<td>string</td>
<td>string</td>
<td>See <a class="reference internal" href="definitions.html#grammar-token-constant"><code class="xref std std-token docutils literal"><span class="pre">constant</span></code></a> for the UUID format</td>
</tr>
<tr class="row-even"><td><code class="docutils literal"><span class="pre">varchar</span></code></td>
<td>string</td>
<td>string</td>
<td>Uses JSON&#8217;s <code class="docutils literal"><span class="pre">\u</span></code> character escape</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal"><span class="pre">varint</span></code></td>
<td>integer, string</td>
<td>integer</td>
<td>Variable length; may overflow 32 or 64 bit integers in
client-side decoder</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="the-fromjson-function">
<h2>The fromJson() Function<a class="headerlink" href="#the-fromjson-function" title="Permalink to this headline">¶</a></h2>
<p>The <code class="docutils literal"><span class="pre">fromJson()</span></code> function may be used similarly to <code class="docutils literal"><span class="pre">INSERT</span> <span class="pre">JSON</span></code>, but for a single column value. It may only be used
in the <code class="docutils literal"><span class="pre">VALUES</span></code> clause of an <code class="docutils literal"><span class="pre">INSERT</span></code> statement or as one of the column values in an <code class="docutils literal"><span class="pre">UPDATE</span></code>, <code class="docutils literal"><span class="pre">DELETE</span></code>, or
<code class="docutils literal"><span class="pre">SELECT</span></code> statement. For example, it cannot be used in the selection clause of a <code class="docutils literal"><span class="pre">SELECT</span></code> statement.</p>
</div>
<div class="section" id="the-tojson-function">
<h2>The toJson() Function<a class="headerlink" href="#the-tojson-function" title="Permalink to this headline">¶</a></h2>
<p>The <code class="docutils literal"><span class="pre">toJson()</span></code> function may be used similarly to <code class="docutils literal"><span class="pre">SELECT</span> <span class="pre">JSON</span></code>, but for a single column value. It may only be used
in the selection clause of a <code class="docutils literal"><span class="pre">SELECT</span></code> statement.</p>
</div>
</div>



          
          <div class="doc-prev-next-links" role="navigation" aria-label="footer navigation">
            
            <a href="triggers.html" class="btn btn-default pull-right " role="button" title="Triggers" accesskey="n">Next <span class="glyphicon glyphicon-circle-arrow-right" aria-hidden="true"></span></a>
            
            
            <a href="functions.html" class="btn btn-default" role="button" title="Functions" accesskey="p"><span class="glyphicon glyphicon-circle-arrow-left" aria-hidden="true"></span> Previous</a>
            
          </div>
          
        </div>
      </div>
    </div>
    <div class="col-md-2">
    </div>
  </div>
</div>

    <footer>
  <div class="container">
    <div class="col-md-4 social-blk">
      <span class="social">
        <a href="https://twitter.com/cassandra"
           class="twitter-follow-button"
           data-show-count="false" data-size="large">Follow @cassandra</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
        <a href="https://twitter.com/intent/tweet?button_hashtag=cassandra"
           class="twitter-hashtag-button"
           data-size="large"
           data-related="ApacheCassandra">Tweet #cassandra</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
      </span>
    </div>

    <div class="col-md-8 trademark">
      <p>&copy; 2016 <a href="http://apache.org">The Apache Software Foundation</a>.
      Apache, the Apache feather logo, and Apache Cassandra are trademarks of The Apache Software Foundation.
      <p>
    </div>
  </div><!-- /.container -->
</footer>

<!-- Javascript. Placed here so pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="./../../../js/underscore-min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>


<script src="./../../../js/doctools.js"></script>
<script src="./../../../js/searchtools.js"></script>

 <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:    "", VERSION:     "", COLLAPSE_INDEX: false, FILE_SUFFIX: ".html", HAS_SOURCE:  false, SOURCELINK_SUFFIX: "" }; </script> 

<script type="text/javascript">
$(function() {
    // Stick the #nav to the top of the window
    var nav = $('.doc-navigation');
    var navHomeY = nav.offset().top;
    var isFixed = false;
    var $w = $(window);
    $w.scroll(function() {
        var scrollTop = $w.scrollTop();
        var shouldBeFixed = $w.width() > 991 && scrollTop >= navHomeY - 10;
        if (shouldBeFixed && !isFixed) {
            nav.css({
                position: 'fixed',
                top: 0,
                left: nav.offset().left,
                width: nav.width(),
            });
            nav.addClass('fixed-navigation');
            isFixed = true;
        }
        else if (!shouldBeFixed && isFixed)
        {
            nav.css({
                position: 'static'
            });
            nav.removeClass('fixed-navigation');
            isFixed = false;
        }
    });
});
</script>


<script type="text/javascript">
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

  try {
    var pageTracker = _gat._getTracker("UA-11583863-1");
    pageTracker._trackPageview();
  } catch(err) {}
</script>


  </body>
</html>
