You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPath中fn:parse-json处理NUL字节:是处理器限制还是规范要求?

JSON规范与XPath处理器对NUL字节的处理

首先明确:JSON规范并不允许原始NUL字节(U+0000)直接出现在字符串中,仅允许通过\u0000转义序列表示该字符。

根据JSON官方RFC 8259标准:

字符串值必须是由双引号包裹的Unicode字符序列,其中不能包含未转义的控制字符(U+0000至U+001F),但可以使用转义序列来表示这些字符。

你的XPath处理器的行为是符合规范和通用实践的:

  • parse-json("\u0000")能正确解析转义序列得到对应的NUL字符,这是符合JSON规范的;
  • 后续serialize(map{"method": "json"})输出时将NUL字符转为�(U+FFFD替换字符),这是因为NUL字节在绝大多数文本处理场景中属于不可打印的控制字符,直接输出可能导致下游解析异常、存储问题或显示错乱,所以处理器会做这种安全兼容处理。

简单说:这不是XPath处理器的限制,而是遵循了文本安全处理的通用逻辑,同时完全符合JSON规范的要求。

对比XML:XML的字符集定义直接排除了U+0000,所以从根源上不允许该字符存在;而JSON允许转义表示,但实际输出时会做安全替换,避免潜在问题。

内容的提问来源于stack exchange,提问作者Fravadona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:42:34