在一个动作类中,我以传统方式获得了一个 bean 列表。然后我使用 Gson 将此对象列表转换为 json 字符串。这很好用(如下所示):
"{ "employees" : [{ "firstName":"John" , "lastName":"Doe" }, {"firstName":"Anna" , "lastName":"Smith" } , { "firstName":"Peter" , "lastName":"Jones" } ]}";
最后,在我的 freemarker 文件中,我得到了这个变量(字符串 JSon),但是在其中,所有双引号都被替换为 '"e;'。
<@sjg.grid id="gridtable"
caption="My title"
dataType="json"
href="${remoteurl}"
pager="true"
gridModel="${employeesInJsonString?js_string}"
rowList="10,15,20"
rowNum="15"
rownumbers="true">
<sjg:gridColumn name="firstName" index="firstName" title="FirstName" sortable="false"/>
<sjg:gridColumn name="lastName" index="lastName" title="LastName" sortable="false"/>
结果字符串如下:
"{ & quote;employees& quote; : [{ & quote;firstName& quote;:& quote;John& quote; , & quote;lastName& quote;:& quote;Doe& quote; }, {& quote;firstName& quote;:& quote;Anna& quote; , & quote;lastName& quote;:& quote;Smith& quote; } , { & quote;firstName& quote;:& quote;Peter" , & quote;lastName& quote;:& quote;Jones& quote; } ]}";
如何阻止这种转变?
PS:我已经尝试在所有双引号前加上反斜杠来转义字符,但结果是一样的(resultJsonString = jsonString.replaceAll("\"", "\\""))。
预先感谢您的帮助