Convert.h: Json format into HTML
/* Function: Convert Json format value into HTML format
* Author: Hex
* Date: 2016-09-21
*/
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
#include <string.h>
#include <iostream>
using namespace std;
//replace value
string& replace_all(string& str, const string& old_value, const string& new_value)
{
while(true)
{
string::size_type pos(0);
if((pos=str.find(old_value)) != string::npos)
str.replace(pos,old_value.length(),new_value);
else
break;
}
return str;
}
//analyse Json value
string Json2Html(string strJson)
{
string strHtml = "";
cJSON *root = cJSON_Parse(strJson.c_str());
if (!root)
{
printf("Json format error!");
return "";
}
cJSON *pNext = root->child;
if (!pNext)
{
return strJson;
}
int nPos = 0;
int count = 0;
while (pNext)
{
string strChild = cJSON_Print(pNext);
string strVal = Json2Html(strChild);
if (pNext->string != NULL)
{
string strKey = pNext->string;
strHtml.append("<ul>");
strHtml.append("<li>");
strHtml.append("<span style=\"margin-right:20px; front-weight:bold\">" + strKey + "</span>" + strVal);
strHtml.append("</li>");
strHtml.append("</ul>");
}
else
{
strHtml.append("<li>");
strHtml.append("<span style=\"margin-right:20px\">" + strVal + "</span>" + strVal);
strHtml.append("</li>");
}
pNext = pNext->next;
count++;
}
return strHtml;
}
// html format output
void HtmlOutput(const string input)
{
string html = "<!DOCTYPE html>";
html.append("<html>");
html.append("<head>");
html.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
html.append("</head>");
html.append("<body>");
html.append(Json2Html(input));
html.append("</body>");
html.append("</html>");
cout << html << endl;
}