2

在一个动作类中,我以传统方式获得了一个 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("\"", "\\""))。

预先感谢您的帮助

4

1 回答 1

1

我认为您正在寻找的只是${yourvar?no_esc}

于 2022-02-09T05:55:43.450 回答