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左右程序就基本瘫痪了。如何解?

json 转换成html,json字符串转换为html字符串相关推荐

  1. 使用Jackson将一个对象转换成一个JSON字符串

    由于ajax的流行,在程序中使用了越来越多的json来进行数据的传输,而Jackson可以将一个普通的java对象转换成一个json的字符串,帮助程序员进行前后端数据的传输. 首先需要导入程序依赖的j ...

  2. json转php数组 在线,PHP如何将JSON转换成数组/对象

    在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...

  3. php将json转化成数组,php如何把json转换成数组

    php把json转换成数组的方法:首先创建一个php示例文件:然后创建一组json格式数据:接着通过"json_decode"函数把json转换成数组:最后通过"var_ ...

  4. php将json转换成对象,php将json转换成对象或数组

    php将json转换成对象或数组 发布时间:2020-06-01 16:31:29 来源:亿速云 阅读:126 作者:鸽子 在PHP中可以使用json_decode()函数将JSON编码的字符串转换为 ...

  5. PHP把JSON转换成数组

    在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型.默认情况下,json_decode()函数将返回一个对象:但是,可以指定第二个参数为一个布尔值true ...

  6. java 泛型集合 json_将泛型集合转换成分页json数据

    [java]代码库package com.sunweb.util.jsonfactory; import java.util.List; import com.sunweb.util.jsonfact ...

  7. json转换成excel在线js小工具分享【不限制大小】

    起因 我们在工作过程中,偶尔会有需求是把json转换成excel的需求.一般这个时候,我们会跑到度娘那,在输入框中输入:"json excel".然后,你会发现这个一个网站&quo ...

  8. json转换成实体类

    今天同事问我个问题.她需要把字符串的json转换成实体类,但是一直报错.主要是实体类当中的内部类需要用静态字段static修饰,否则无法访问. 以下是报错信息 org.codehaus.jackson ...

  9. json转换成dart类 JSON to Dart

    json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ...

最新文章

  1. python中正确的表达式_python中如何正确使用正则表达式的详细模式(Verbose mode expression)...
  2. Linux(64) 下 Tomcat + java 环境搭建
  3. C语言之反序数组和求最大值和最小值
  4. The Dataflow Model: A Practical Approach to Balancing
  5. 栗子——自定义EditText实现右下角计数控件
  6. docker rocketmq 安装及使用
  7. C# richTextBox重刷最后一行,richTextBox只更新最后一行
  8. 免费下载IEEE论文的网站
  9. DVP和MIPI接口的简单区别
  10. Landsat5数据下载中国地区1990年
  11. java 热度算法_Raddit算法Java实现
  12. lol人物模型提取(七)
  13. 简单的一个百度注册界面
  14. 蓝牙通信的简要设计与开发(附加题)
  15. Java流及流操作示例
  16. PyQt实现按钮控件的拖动效果,利用鼠标移动事件实现。
  17. “好奇号”的火星发展观
  18. python基础------绘制条形图、直方图、饼图、热力图、极坐标图、进度条
  19. 《PNG文件格式》(一)PNG文件概述
  20. 论文投稿指南——中文核心期刊推荐(原子能技术)

热门文章

  1. C调java_ffmpeg系统学习视频9-5 C调Java的方法.mp4
  2. python gil 解决_Python GIL问题
  3. 一个IO的传奇一生(10)-- CFQ调度算法
  4. ps蒙版使用计算机一级,2017计算机一级Photoshop模拟试题和答案(一)
  5. Spring Cloud Zuul之ZuulFilter详解
  6. 深入理解Allocator
  7. MacBook git 下载 安装 配置环境变量 使用示范
  8. JS 实现消息滚动效果
  9. 字符串数组如何转成字符串
  10. 红蓝对抗安全工具汇总