无法在 Freemarker 2.3.21 中解析 JSON
Unable to parse JSON in Freemarker 2.3.21
我有一个有效的json。我想将其分配给要在页面中使用的变量。但是 FTL 抛出错误提示 "the string is evaluated to null or missing".
我在 2.1.X 版本中可以顺利完成相同的操作。
我可能做错了什么?
如果我理解得很好,您尝试从 FreeMarker 2.1.x 迁移到 2.3.x,即使您没有意识到这需要一些额外的迁移工作。考虑早期的 2.x.x FreeMarker 版本,即 2.3.0 之前的版本(11 年前的 2004 年发布)在向后兼容性方面仍然处于沸腾和脆弱状态。 (从下载页面上的版本历史和版本政策声明中也可以看出这一点。)
主要的迁移问题曾经是 FreeMarker 在涉及空值和缺失变量时随着时间的推移变得更加严格。虽然这个改变已经在 2.1.0 中完成,但也许那个部门的一些粗糙的边缘后来被打磨了......(或者,你是从 2.01 迁移过来的吗?那意味着是 2.0.1,但回到黑暗时代作者设法以某种方式搞砸了......)
另请注意,有一个配置设置 classic_compatible
。它主要用于帮助从 1.x 迁移到更严格的更高版本。所以基本上它使 FreeMarker 更加宽松。也许它早些时候打开了,现在不知何故关闭了?
问题已归零为空值。在 2.3.x 中,我们不能使用 null 作为 json 属性的值。相反,我不得不用空字符串替换它。此外,不再允许将数值与字符串进行比较。
解决了这些问题,效果非常好。
我有一个有效的json。我想将其分配给要在页面中使用的变量。但是 FTL 抛出错误提示 "the string is evaluated to null or missing".
我在 2.1.X 版本中可以顺利完成相同的操作。
我可能做错了什么?
如果我理解得很好,您尝试从 FreeMarker 2.1.x 迁移到 2.3.x,即使您没有意识到这需要一些额外的迁移工作。考虑早期的 2.x.x FreeMarker 版本,即 2.3.0 之前的版本(11 年前的 2004 年发布)在向后兼容性方面仍然处于沸腾和脆弱状态。 (从下载页面上的版本历史和版本政策声明中也可以看出这一点。)
主要的迁移问题曾经是 FreeMarker 在涉及空值和缺失变量时随着时间的推移变得更加严格。虽然这个改变已经在 2.1.0 中完成,但也许那个部门的一些粗糙的边缘后来被打磨了......(或者,你是从 2.01 迁移过来的吗?那意味着是 2.0.1,但回到黑暗时代作者设法以某种方式搞砸了......)
另请注意,有一个配置设置 classic_compatible
。它主要用于帮助从 1.x 迁移到更严格的更高版本。所以基本上它使 FreeMarker 更加宽松。也许它早些时候打开了,现在不知何故关闭了?
问题已归零为空值。在 2.3.x 中,我们不能使用 null 作为 json 属性的值。相反,我不得不用空字符串替换它。此外,不再允许将数值与字符串进行比较。
解决了这些问题,效果非常好。