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

能否在Dhall记录标签中使用非ASCII字符(如CJK字符)?

Dhall记录标签能否使用非ASCII字符(如CJK字符)?

问题背景

想要将以下JSON转换为Dhall记录:

{ "ハルカナホシノセカイへ": "https://www.youtube.com/watch?v=pwl1nISaCNg" }

使用json-to-dhall工具转换后得到结果:

$ json-to-dhall <<< '{ "ハルカナホシノセカイへ": "https://www.youtube.com/watch?v=pwl1nISaCNg" }' 
{ `ハルカナホシノセカイへ` = "https://www.youtube.com/watch?v=pwl1nISaCNg" }

但用dhall-to-json将该Dhall代码转回JSON时,出现了语法错误:

$ dhall-to-json <<< '{ `ハルカナホシノセカイへ` = "https://www.youtube.com/watch?v=pwl1nISaCNg" }'

Error: Invalid input

(input):1:3:
  |
1 | { `ハルカナホシノセカイへ` = "https://www.youtube.com/watch?v=pwl1nISaCNg" }
  |   ^
unexpected '`'
expecting ',', =, whitespace, or }

解答

Dhall完全支持在记录标签中使用非ASCII字符(包括CJK字符),问题出在反引号的使用上:

  • 反引号包裹标签是Dhall早期版本的语法,现在已被废弃,当前标准语法允许直接将非ASCII字符作为记录标签,不需要额外包裹。
  • 正确的Dhall记录写法如下:
{ ハルカナホシノセカイへ = "https://www.youtube.com/watch?v=pwl1nISaCNg" }
  • 使用上述正确代码运行dhall-to-json,即可成功转换回原JSON格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:52:40