gpt4 book ai didi

json - 将速度响应转换为 JSON

转载 作者:行者123 更新时间:2023-12-05 05:28:41 27 4
gpt4 key购买 nike

我正在使用 struts 2 和 velocity 模板生成 JSON 响应。现在要注意的是响应不是使用某些速度 JSON 插件生成的它只是一个字符串,一旦 velocity 完成它的解析和渲染就会出现响应,并在客户端执行 eval 以获取从字符串到 JSON 的响应。

我真正需要的是速度或支柱方面的一些解决方案,一旦结果是由 velocity 生成,框架应该调用我的 API,我可以在其中使用我自己的逻辑将 vm 文件的响应输出转换为 JSON。如何实现这一目标?

例如:

  1. 在使用 JavaScript 的浏览器上,我设计了一个树形小部件,用于以树形结构显示评论。
  2. 假设用户点击评论按钮。
  3. 我的 UI 小部件将触发 AJAX 以获取评论数据。
  4. 此请求被 STRUTS 2 框架拦截。
  5. 它将调用,比方说,getComments() 操作 API,并将用评论对象(比如 cmt)填充 arrayList。
  6. 现在响应由速度模板 (*.vm) 处理。
  7. 现在在 vm 中我正在编写这样的代码:

    { "CommentsData" : [

    #set($sep="")
    #foreach($c in $cmt)
    $sep
    {
    "commentText" : $c.getText()
    }
    #set($sep=",")
    #end

    }
  8. 现在最终的响应可能是这样的:

    { "CommentsData" : [

    {
    "commentText" : "This is comment 1"
    },
    {
    "commentText" : "This is comment 2"
    },
    {
    "commentText" : "This is comment 3"
    },
    {
    "commentText" : "This is comment 4"
    }`

    ]
    }
  9. 现在这可能看起来像 JSON,但它不是严格的 JSON;我的意思是如果我错过一些 , 然后在 JavaScript 客户端的某处,我的 eval 可能会失败或 JSON.parse()会失败,但在 velocity 模板上,我现在知道 JSON 是否格式错误。

  10. 因此,一旦生成了上述速度模板,我就需要一些控制,我可以在其中编写一些 Java 代码来对响应进行一些验证。

我发现我使用速度模板生成 JSON 输出(实际上是一个看起来像 JSON 的字符串)的方法可能是错误的。但我仍然需要处理我编写的每个速度模板的响应。

最佳答案

不确定您如何使用速度。我们在输出 JSON 时不使用 velocity;我们只是创建一个 JSON 可转换对象并使用 response.write(jsonObject.toJson()) 直接从 Controller 输出它。这样,始终会生成正确的 JSON。

关于json - 将速度响应转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8815370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com