需要使用 wicket 和 javascript 以 JSON 格式打印数据

Needs to print data in JSON format using wicket and javascript

我在检票口中实现了以下代码。它在一行中打印整个 JSON 数据。实际上它应该以 JSON 格式打印。据我了解,问题出在 document.getElementById(''demo'').innerHTML={0}。如果我做错了什么,请更正我的代码。

以及为什么 (''demo'') 在 Html id 的开头和结尾需要两个单引号。

target.appendJavaScript(MessageFormat
                    .format("document.getElementById(''demo'').innerHTML={0}'", mapper.writerWithDefaultPrettyPrinter()
                                    .writeValueAsString(jsonDataProducer())));

我的问题得到了答案。

target.appendJavaScript(MessageFormat
                        .format("document.getElementById(''demo'').innerHTML=JSON.stringify({0},null,2);", jsonDataProducer));

首先,我尝试使用以下代码打印漂亮的 JSON。 mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonDataProducer().toString()) 但是,当我将它分配给 document.getElementById(''demo'').innerHTML 时,javascript 将其视为一个对象。 所以,我用了JSON.stringify({0},null,2)。它将以美化的 JSON 格式对 javascript 对象进行字符串化。

而在MessageFormat中,一对单引号被视为单引号。 从 here 我得到了 MessageFormat 单引号信息。我们还可以阅读 MessageFormat 文档。