我尝试同时使用flexjson.JSONSerializer
和com.fasterxml.jackson.databind.ObjectMapper
在 freemarker 模板中将通过 csv 数据加载器加载的 csv 文件转换csv(menu.csv, {trimCells: true})
为 JSON。
当我尝试运行它时,出现以下异常:
...
Caused by: java.lang.UnsupportedOperationException: Operation supported only on TemplateHashModelEx. fmpp.models.CsvSequence does not implement it though.
at freemarker.ext.beans.HashAdapter.getModelEx(HashAdapter.java:186)
at freemarker.ext.beans.HashAdapter.access$000(HashAdapter.java:38)
at freemarker.ext.beans.HashAdapter$1.iterator(HashAdapter.java:99)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:696)
... 46 common frames omitted
我还不知道 FreeMarker 的任何内部结构,但在我看来,这CsvSequence
确实实现了freemarker.template.TemplateHashModel
但不是freemarker.template.TemplateHashModelEx
.
我发现的唯一地方getModelEx
是在 HashAdaptor 中,所以我假设它使用较新的接口进行哈希。
知道如何解决这个问题吗?