CFScript标签输出中的XML注释

3

我想将一个查询对象输出为JSON。我找到了一些代码,建议使用ColdFusion的cfscript标签和serializeJSON函数:

<cfscript>
  theJSON = SerializeJSON(queryObj);
  writeOutput(theJSON);
</cfscript>

这个方法可以从查询对象创建JSON。然而,在输出的JSON末尾总是附加了一个XML注释,如下所示:

{"COLUMNS":["ID","VALUE"],"DATA":[["12345","abcd"]]} <!-- 113760 -->

XML注释中的数字总是随机生成的。因为这是XML,它不是有效的JSON格式。我想摆脱它,但我不确定如何操作。有什么想法吗?为什么会出现这个XML,我该如何摆脱它?


你能发布一下你正在尝试转换的XML吗? - Mohamad
3
我怀疑问题不是由serializeJSON引起的。你的测试页面或application.cfm/cfc中是否还有其他代码涉及到此问题? - Leigh
看起来你的疑虑是有根据的,我再次查看后发现我的页面也包含了这个语句:<cfcontent type="application/json"> 这就是罪魁祸首。但我希望将内容设置为JSON而不会在输出中添加XML注释。有什么建议吗? - jmort
你最终找出问题所在了吗? - Ilya Fedotov
我最终确实找到了真正的原因。请查看下面标记答案的评论中的解释。 - jmort
显示剩余2条评论
2个回答

1

很可能您有其他输出该注释的内容。创建一个带有查询和您发布的代码的单独文件。运行代码并查看是否仍然存在相同的问题。如果您的上下文中有Application.cfmApplication.cfc文件,请确保查看这些文件。 此外,您可以尝试在代码中插入abort以查看问题是否仍然存在:

<cfscript>
  theJSON = SerializeJSON(queryObj);
  writeOutput(theJSON);
  abort;
</cfscript>

我遇到这个问题已经有一段时间了,幸运的是,我找到了一个更有 ColdFusion 经验的人来帮助我追踪它。当我找到它时,我应该留下评论,因为我已经忘记了具体是什么。但是我记得的是,我们使用的 MVC 框架的响应被另一个进程包装,该进程编写了 XML 注释。我认为我们确实使用了此答案中列出的 abort 命令来帮助追踪事物。感谢大家的建议。 - jmort

0
113760可能是一个特殊的数字,也可能是正在生成的字节数。在搜索"<!-- #"、"<cfoutput><!--"或者"<!-- <cfouput"时,可能会帮助定位生成HTML注释的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接