当前位置: 首页 > 知识库问答 >
问题:

用Java将JSON文件转换为HTML

李成礼
2023-03-14

我是Java新手,我试图在不使用任何外部库的情况下将任何给定的json文件转换为html文件,除了GSON来解释json结构。由于我目前还不知道如何正确处理这个问题,我想谦卑地请求您的帮助。

这是一个示例json文件:

{
    "doctype": "html",
    "language": "en",
    "head": {
        "meta": {
            "charset": "utf-8",
            "viewport": {
                "width": "device-width",
                "initial-scale": 1
            }
        },
        "title": "Page Not Found"
    },
    "body": {
        "h1": "Page Not Found",
        "p": "Sorry, but the page you were trying to view does not exist."
    }
}

这是文件的预期输出:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Page Not Found</title>
    </head>
    <body>
    <h1>Page Not Found</h1>
        <p>Sorry, but the page you were trying to view does not exist.</p>
    </body>
</html>

这是我目前拥有的代码:(实际的转换方法)

private static void getJsonData (JsonObject jsonObject) throws IOException {
        jsonObject.keySet().forEach(key ->
        {
            Object value = jsonObject.get(key);

            if (value instanceof JsonObject){
                try {
                    getJsonData((JsonObject) value);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                System.out.println("key " + key + " of value " + value + " is a JsonObject");
            } else if (value instanceof JsonArray){
                try {
                    writeToHtmlFile("<" + key + ">");
                } catch (IOException e) {
                    e.printStackTrace();
                }
                System.out.println("key " + key + " of value " + value + " is a JsonArray");
            } else {
                if (Objects.equals(key, "doctype")) {
                    try {
                        writeToHtmlFile("<!DOCTYPE " + value + ">");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else if (Objects.equals(key, "language")) {
                    try {
                        writeToHtmlFile("<html lang=" + value + ">");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else {
                    try {
                        writeToHtmlFile("<" + key + ">");
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("key " + key + " of value " + value + " is an entry");
            }
            ;
        });
        ;
    }
    ;

(使用GSON的json提取方法)

public static Map readJsonFile (String path) {
        Map<String, String> map = null;
        try {
            Gson gson = new Gson();
            Reader reader = Files.newBufferedReader(Paths.get(path));
            map = gson.fromJson(reader, Map.class);
            reader.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return map;
    }

这是我当前对html文件的输出,显然是不正确的:

<!DOCTYPE "html">
<html lang="en">
<charset>
<width>
<initial-scale>
<title>
<h1>
<p>

共有1个答案

轩辕晔
2023-03-14

你为什么需要这个?您不能添加h1:Some text、h2:Some text和h1:a text,因为json不允许,那么为什么要使用自己的html语言呢?哪一个会比原来的更有限?

 类似资料:
  • 问题内容: 我使用APKTool对Android应用程序进行了反向工程,并获得了.Smali文件作为源代码输出。我将带有应用程序的.Smali文件转换为.Java文件。我能够成功编辑.Java文件,但现在我想将它们转换回.Smali,以便可以使用新的.Smali文件重新编译应用程序。当我只留下.Java文件时,它不会重新编译并给出一些错误。我在互联网上找不到有关将.Java编译为.Smali的任何

  • 问题内容: 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。 由于我习惯于在Java中工作,因此最好在Java项目中轻松使用的解决方案。不过,它仅需要在Windows系统上工作。 一种可行的方法,但不会产生高质量的输出(至少是开箱即用的),一种方法是使用CSS2XSLFO和Apache F

  • 问题内容: 像这样转换JSON代码的最佳方法是什么: 在Java Map中,其中一个键为(field1,field2),而这些字段的值为(value1,value2)。 有任何想法吗?我应该使用Json-lib吗?或者,如果我编写自己的解析器会更好? 问题答案: 我希望你在开玩笑地编写自己的解析器。: 对于这样的简单映射,http://json.org(java部分)中的大多数工具都可以使用。对于

  • 我正在寻找一些“稳定”的方法来转换从MS WORD到PDF文件的DOCX文件。从现在起,我使用OpenOffice安装作为监听器,但它经常挂起。问题是,当许多用户同时想要将SXW、DOCX文件转换成PDF时,我们会遇到这样的情况。还有其他的可能性吗?我尝试了这个网站上的示例:https://angelozerr.wordpress.com/2012/12/06/how-to-convert-doc

  • 问题内容: 我打算通过将其编码为JSON来发送充满数据的Javascript数组对象。任何好的jQuery插件吗? 在Java端,将JSON解析为Java数组的标准方法是什么? 总体流程如下: Javascript会在当前页面上编译一堆数据并将其存储在数组中。 数组对象编码为JSON。 Java代码保存JSON。 对每个页面重复执行并用Java代码编译成功的JSON。 Java代码向服务器提交一个

  • 问题内容: 我需要帮助来理解使用java将XML文件转换为CSV文件所涉及的步骤。这是XML文件的示例 这是生成的CSV文件。 我当时正在考虑使用DOM解析器读取xml文件。我遇到的问题是,我需要按名称指定要编码的特定元素,但我希望它能够解析它而不这样做。 Java中是否有任何工具或库可以帮助我实现这一目标。 如果我下面有这种格式的XML文件,并且想在与MSgId相同的行中添加InitgPty的值