try{ 
var jsonStr='{}';
jsonObj=JSON.parse(jsonStr);
var objectId =0;
var level=0;
var htmlStr=""
htmlStr += "<html>";
htmlStr += "<head>";
htmlStr += "<script>";
htmlStr += "function show(idVal){";
htmlStr += "	var val = \"<table border='1'>\" + document.getElementById(idVal).value + \"</table>\";";
htmlStr += "	document.getElementById('displayId').innerHTML = val;";
htmlStr += "document.getElementById('displayId').style.display = \"block\";";
//htmlStr += "alert(idVal);";
//htmlStr += "alert(val);";
htmlStr += "}";
htmlStr += "</script>";
htmlStr += "</head>";
htmlStr += "<div id='displayId' style='display:none'></div>";
htmlStr += "<div>\n<table border='1'>\n";
printObjectValues(jsonObj,level);
htmlStr += "\n</table>\n</div>";
//var pattern = new RegExp("\\n","g");
//htmlstr =htmlStr.replace(pattern,'');
htmlStr += "</html>";
console.log(htmlStr);

function tabs(level){
return '';	
}
function tabsOrig(level){
	var tabs="";
	for(var i=0;i<level;i++){
		tabs += "\t";
	}
	return tabs;
}

function printObjectValues(jsonObj,level){
var output="";
var objectHtmlStr="";
try{
for (var key in jsonObj) {
//console.log(key +":" + jsonObj.hasOwnProperty(key));
  if (jsonObj.hasOwnProperty(key)) {
	var v = jsonObj[key];
	if(typeof v === 'object' && Array.isArray(v) === false){
		var idVal = objectId++;
		level++;
		objectHtmlStr += tabs(level) + "<div>\n" ;
		objectHtmlStr += tabs(level+1 ) +"<table border='1'>\n" ;

		var str=printObjectValues(v,level+2);
		if(str != null && str != ''){
			htmlStr += tabs(level+2) + objectHtmlStr + "<tr><td style='background-color:green'><a href=\"javascript:show('obj_" + idVal + "')\">" + key + "</a>\n";
			htmlStr +="<input id='obj_" + idVal + "' type='hidden' value='" + str.trim() + "'>\n";
		}

		htmlStr += tabs(level+1) + "</table>\n" ;
		htmlStr += tabs(level) + "</div>\n";
	}else if(typeof v === 'object' && Array.isArray(v) === true){
		var idVal = objectId++;
		level++;
		objectHtmlStr += tabs(level) + "<div>\n";
		objectHtmlStr += tabs(level+1) + "<table border='1'>\n";

		var str = printArrayValues(v,key,level+2);
		if(str != null && str != ''){
			htmlStr += tabs(level+2) + objectHtmlStr + "<tr><td style='background-color:blue'><a href=\"javascript:show('obj_" + idVal + "')\">" + key + "</a>\n";
		htmlStr+="<input id='obj_" + objectId + "' type='hidden' value='" +  str.trim() + "'>\n";
		}

		htmlStr += tabs(level+1) + "</table>\n" ;
		htmlStr += tabs(level) + "</div>\n";
	}else{
		output += tabs(level) +"<tr><td>" + key + "</td><td>" + printValue(v) + "</td></tr>\n";
	}
  }
}
}catch(err){
	console.log(err);
}
return output;
}

}catch(err){ 
console.log( err );
}

function printArrayValues(arrObj,key,level){
var output ="";
var arrayHtmlStr ="";
try{
	for(var i=0;arrObj != null && i<arrObj.length;i++){
		var o=arrObj[i];
		if(typeof o === 'object' && Array.isArray(o) === false){
			var idVal = objectId++;
			level++;
			arrayHtmlStr += tabs(level) + "<div>\n" ;
			arrayHtmlStr += tabs(level+1 ) +"<table border='1'>\n" ;

			var str = printObjectValues(o,level+2);
			if(str != null && str != ''){
				htmlStr += tabs(level+2 ) + arrayHtmlStr + "<tr><td><a href=\"javascript:show('obj_" + idVal + "')\">" +key + "[" + i + "]"  + "</a>\n";
				htmlStr+="<input id='obj_" + idVal + "' type='hidden' value='" +str.trim() + "'>\n";
			}
			htmlStr += tabs(level+1) + "</table>\n";
			htmlStr += tabs(level) + "</div>\n";
		}else if(typeof o === 'object' && Array.isArray(v) === true){
			var idVal = objectId++;
			level++;
			arrayHtmlStr += tabs(level) + "<div>\n" ;
			arrayHtmlStr += tabs(level+1 ) +"<table border='1'>\n" ;

			var str = printArrayValues(o,key,level);
			if(str != null && str != ''){
				htmlStr += tabs(level+2 ) + arrayHtmlStr + "<tr><td><a href=\"javascript:show('obj_" + idVal + "')\">Array</a>\n";
				htmlStr+="<input id='obj_" + idVal + "' type='hidden' value='" +str.trim() + "'>\n";
			}

			htmlStr += tabs(level+1) + "</table>\n";
			htmlStr += tabs(level) + "</div>\n";
		}else{
			output += tabs(level) + "<tr><td>" + printValue(o) + "</td></tr>\n";
		}
	}
}catch(err){
	console.log(err);
}
return output;
}

function printValue(obj){
	if(obj != undefined){
		return obj;
	}else{
		return "";
	}
}