IT干货网

Freemarker将String解析为Json

sky-heaven 2025年12月25日 编程设计 50 0

大概不可能
但我想用freemarker在 map 中转换一个json字符串

前任:

<#assign test = "{\"foo\":\"bar\", \"f\":4, \"text\":\"bla bla\"}"> 

并能够从该字符串中获取 文本 key

请您参考如下方法:

使用?eval。它之所以有效,是因为JSON映射恰好是有效的FreeMarker表达式(更新:在FreeMarker 2.3.x中无法识别null除外)。

<#assign test = "{\"foo\":\"bar\", \"f\":4, \"text\":\"bla bla\"}"> 
<#assign m = test?eval> 
 
${m.foo}  <#-- prints: bar --> 
 
<#-- Dump the whole map: --> 
<#list m?keys as k> 
  ${k} => ${m[k]} 
</#list> 

(顺便说一句,如果用 \"而不是 '引用字符串,则不必使用 "。)


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!