【问题标题】:Needs to print data in JSON format using wicket and javascript需要使用 wicket 和 javascript 以 JSON 格式打印数据
【发布时间】:2019-09-18 14:11:49
【问题描述】:

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

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

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

【问题讨论】:

  • 也许我理解错了,但 JSON 数据始终是 JSON 格式。
  • 是的,它只有 JSON 格式。我要求漂亮的打印格式。不像在一行中打印整个 JSON 数据。
  • 我不明白你为什么在 getElementById 中使用两个单引号。如果你想显示美化的 JSON,'demo' 应该对应一个
     标签
  • @Andrea Del Bene 抱歉耽搁了。在 MessageFormat 中“单引号本身必须用双引号 '' 表示。我从以下链接得到这个:stackoverflow.com/questions/189889/…

标签: javascript wicket


【解决方案1】:

我的问题得到了答案。

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 文档。

【讨论】:

    猜你喜欢
    • 2016-07-27
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2012-09-05
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多