我們正在使用Spring MVC和freemarker作爲模板語言來構建一個restful api。我們選擇建立在freemarker的JSON響應如何在freemarker中跳出json字符串
例freemarker.ftl:
{
"field1" : "${response.value1}",
"field2" : "${response.value2}"
}
我們得到了一個問題,當值的字符串包含引號(或任何其他字符的JSON語法)。
問題:如何使用freemarker轉義這些字符串?
我們已經看了?xml
或?html
但他們並不涵蓋所有相關的字符(如\
)。
編輯:?js_string
將轉義字符串來與JavaScript通信。由於JSON基於JavaScript(JavaScript對象表示法),因此它將起作用。
編輯2:如果單引號彈出,?js_script
將轉義它,這又會導致無效的JSON。它的修補程序是:
${variable?js_string?replace("\\'", "\'")}
,如果你真的想成爲挑剔:
${variable?js_string?replace("\\'", "\'")?replace("\\>",">")}
+1爲Spring替代 – 2013-09-27 09:02:53