2014-03-07 65 views
0

我有類似:如何將字符串轉換爲地圖的速度

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

getUserPreferences()返回一個字符串,這實際上是一個轉義JSON值。

doing "text" : $userPrefs returns [object] 

我看到一種叫做地圖here

如何將我的數據,就像轉換:

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

到地圖嗎?

感謝

回答

0

這樣做將是把一個JSON解串器工具在上下文的正確方法。

這就是說,如果你在你的情況下獲得VelocityTools,那麼你的確可以做的$一些渲染工具:

#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,再加上速度字面地圖語法不嚴格符合JSON,尤其是在轉義之前。您應該使用而不是使用適當的JSON解串器工具。

0

Thxs我可以做到這一點:-)

Test 
#set($raw = '{"foo":"bar", "baz":5}') 
#set($assign = "$escapetool.getHash()set($map = $raw)") 
#evaluate($assign) 
Test (must display bar value) : $map.foo 
相關問題