// the first/top of the json string must be the class name, so there should only be one key,
// and one value associated with that key { "root_key" : { members } }, where members is
// defined by { pair, members } and pair is defined by "key", "value" (see class documentation).
// we still have to add the value as a node.
final InfoNode rootNode = createRootNode( jsonObject, clazz );
// grab the value and deal with one of the three possibilities:
// 1. the value is a json object and therefore has name-value pairs
// 2. the value is a json array and therefore has elements
// 3. the value is neither, and therefore is a simple value
// In the first two cases, we build out the remainder of the nodes recursively. In
// the third case, we set in the value and class in root node and we're done.
final Object value = JsonUtils.getValue( jsonObject, rootNode.getPersistName() );
if( value instanceof JSONObject )
{
buildInfoNode( (JSONObject)value, rootNode );
}
else if( value instanceof JSONArray )