velocity - 如何将字符串转换为速度图

标签 velocity

我有类似的东西:

set( $userPrefs = ${subscription.getUserPreferences()} )

getUserPreferences() 返回一个字符串,该字符串实际上是转义的 JSON 值。

doing "text" : $userPrefs returns [object]

我看到一个叫做 map 的东西 here

如何转换我的数据,如下所示:

$userPrefs = "{\"a\": \"b\",\"c\": \"d\"}"

进入 map ?

谢谢

最佳答案

执行此操作的正确方法是将 JSON 反序列化器工具放入您的上下文中。

也就是说,如果您可以在上下文中访问 VelocityTools,那么您确实可以使用 $render 工具执行某些操作:

#set($raw = '{"foo":"bar", "baz":5}')
#set($assign = "${esc.hash}set($map = $raw)")
$!render.eval($assign)
#if($map)JSON parsing succeeded: map=$map #else JSON parsong failed #end

但是这种方法看起来相当 hackish,而且 Velocity 文字映射语法并不严格符合 JSON,尤其是在转义方面。您应该使用正确的 JSON 反序列化工具。

关于velocity - 如何将字符串转换为速度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22240323/

相关文章:

c++ - 在 Apache Velocity 模板语言中获取文件目录

javascript - Velocity/Java 脚本形式不保留输入

java - Velocity 模板 - 将变量传递给方法的语法

java - Velocity 模板和 Java 字符串

java - 速度模板不起作用

velocity - 使用 Telosys 生成单个文件

java - Velocity - #springFormInput 和自定义 ID

java - 调用java类形成速度模板(.vt)文件

swift - 重置和更改 SKActions 的速度

javascript - 未捕获的 TypeError : $(. ..).velocity 不是一个函数