博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
json字符串转换为html字符串
阅读量:5737 次
发布时间:2019-06-18

本文共 2720 字,大约阅读时间需要 9 分钟。

hot3.png

json数据格式用于数据传输转换是十分方便的,但是直接预览的可读性差,所以把json串转换为html串,可以直接在页面展示。

这种html展示在json列表中效果尤为明显。

注意:json格式一定要正确!  文件再大也不能分页!

public class Json2Html {	private static String html = "";		/**	 * 将json格式字符串转换成html字符串	 * @param json String	 * @return html String	 */	public static String jsonToHtml(String json) {		//判断json格式是否规范		if (isGoodJson(json)) {			JsonElement j = new JsonParser().parse(json);			html = "";			json2html(j);			return html;		} else {			return "json数据格式不规范,无法解析。
"+json; } } /**  * 判断json串格式是否规范  * @param json String  * @return true(规范) false(不规范)  */ public static boolean isGoodJson(String json) { if (StringUtils.isBlank(json)) { return false; } try { new JsonParser().parse(json); return true; } catch (JsonParseException e) {// System.out.println("bad json: " + json); return false; } } /**  * json转html (递归)  * @param json gson对象  * 转换过程不断修改全局html String  */ public static void json2html(JsonElement json){ //数组  绘制表格 if(json.isJsonArray()){ JsonArray jArray = json.getAsJsonArray(); Iterator it = jArray.iterator();   html += "
"; int f = 0; while(it.hasNext()){      JsonElement jsonElement=(JsonElement) it.next();    if(f == 0){    html += "";    jsonGetHead(jsonElement);    html += "";    }    html += "";    jsonGetBody(jsonElement);    html += "";    f++; } html += ""; html += ""; }else  //对象 (map) if(json.isJsonObject()){ JsonObject jObject = json.getAsJsonObject();     Set
> entrySet = jObject.entrySet();     Iterator
> iter = entrySet.iterator();     while(iter.hasNext()){//      htmlBegin += "";//      htmlEnd = "" + htmlEnd;      Entry
 entry = iter.next();      String key = entry.getKey();      html += key;      html += "=";      JsonElement value = entry.getValue();      json2html(value);     } }else //单一字符 if(json.isJsonPrimitive()){ String finals = json.getAsString();  html += finals; }else if(json.isJsonNull()){ } } /**  * 数组绘制表格  添加表头  * @param json  */ private static void jsonGetHead(JsonElement json){ JsonObject jObject = json.getAsJsonObject();     Set
> entrySet = jObject.entrySet();     Iterator
> iter = entrySet.iterator();     while(iter.hasNext()){      Entry
 entry = iter.next();      String key = entry.getKey();      html += "" + key + "";     } } /**  * 数组绘制表格  添加表体  * @param json  */ private static void jsonGetBody(JsonElement json){ JsonObject jObject = json.getAsJsonObject();     Set
> entrySet = jObject.entrySet();     Iterator
> iter = entrySet.iterator();     while(iter.hasNext()){      Entry
 entry = iter.next();      html += "";      JsonElement value = entry.getValue();      json2html(value);      html += "";     } }}

遗憾的是,文件达到20M左右程序就基本瘫痪了。如何解?

转载于:https://my.oschina.net/u/2462382/blog/600884

你可能感兴趣的文章
python读excel写入mysql小工具
查看>>
如何学习区块链
查看>>
搜索问题的办法
查看>>
微信分销系统商城营销5大重点
查看>>
求职准备 - 收藏集 - 掘金
查看>>
htm5新特性(转)
查看>>
Linux-Centos启动流程
查看>>
php 设计模式
查看>>
后端技术精选 - 收藏集 - 掘金
查看>>
Laravel 服务容器
查看>>
6天面试、斩获6家硅谷巨头Offer,我是如何做到的?
查看>>
Scala模式匹配的亮点——Martin Odersky访谈(四)
查看>>
mac安装kubernetes并运行echoserver
查看>>
多页架构的前后端分离方案(webpack+express)
查看>>
AWS推出深度学习容器,简化AI程序开发
查看>>
算法(第4版) Chapter 1
查看>>
前端技术选型的遗憾和经验教训
查看>>
“亲切照料”下的领域驱动设计
查看>>
GIT
查看>>
微软宣布公开预览其内容分发网络
查看>>