输入 JSON 数据
Elm Record 代码

工具说明与 Elm 数据类型知识点

工具特点

  • Record 类型推断:一键提取 JSON 并生成 Elm 的 type alias (Record),自动将字段名转为强制的小写驼峰开头,同时保证类型名大写开头。
  • Decoder 自动生成:Elm 没有像 JS 那样的原生 JSON.parse,它要求你必须编写 Decoder。本工具会自动为你生成基于 NoRedInk/elm-json-decode-pipeline 风格的强类型解码器代码。
  • Maybe 容错支持:开启后会将所有字段包裹为 Maybe T,生成的 Decoder 会使用 optional 代替 required,极大程度防止因后端 API 缺字段导致的前端白屏崩溃。
  • 关键字冲突处理:自动识别 Elm 的保留关键字(如 type, alias, port),通过在末尾追加下划线(如 type_)进行安全转义,并在 Decoder 中自动做好与原 JSON 键的映射。

Elm 语言的严格规范

  • 大小写敏感:Elm 编译器极度严格。类型(Type / Alias)必须以大写字母开头,而记录的字段(Field)或函数名必须以小写字母开头。工具内部已帮你完美规避。
  • NoRedInk Pipeline:在 Elm 标准库 Json.Decode 中,mapN 最多只支持 8 个字段,超过 8 个字段的 JSON 会极难处理。因此业界标准是使用 elm-json-decode-pipeline(提供 succeedrequiredoptional),工具默认采用该标准输出。
  • 纯函数与不可变性:解析出的 Elm 记录(Record)是完全不可变的,任何更新都需要通过类似于 { model | field = newValue } 的语法来生成新对象。