gpt4 book ai didi

Elm:使用 "type"属性为JSON输入别名

转载 作者:行者123 更新时间:2023-12-04 13:58:42 25 4
gpt4 key购买 nike

我有一些带有“类型”属性的JSON,我想将其导入Elm。例如{ "id": "abc", "type": "thing" },但是如果我使用type作为属性定义类型别名,则编译器会提示。例如。,

type alias Foo = {
id: String
, type: String
}

产生
It looks like the keyword `type` is being used as a variable.

3│ , type: String
^
Rename it to something else.

严重地?我必须重命名该属性?没有办法引用或转义它以便进行编译?

最佳答案

是的,type是保留关键字,不能用作记录中的字段名称。

在Elm和Haskell中,您遇到的最常见的情况似乎是附加一个单引号,因此它变为type',并且您的类型定义变为

type alias Foo =
{ id: String
, type': String
}

这起源于数学的 prime symbol。乍一看可能很奇怪,但它是有效的语法。

然后,您可以使用以下Json解码器将JSON转换为Foo:

fooDecoder =
Json.object2
Foo
("id" := Json.string)
("type" := Json.string)

请注意,Elm中的确切字段名称不需要与JSON字段名称匹配。

很少会找到一种语言,使您可以将关键字用作未转义的变量名。这种行为并非榆树独有。

关于Elm:使用 "type"属性为JSON输入别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com