我从js那边得到了一个数据,它看起来像这样
{
"selectionSet": {
"type": 1,
"selections": [
{
"name": {
"kind": "Name",
"value": "viewer"
},
"selectionSet": {
"type": 1,
"selections": [
{
"name": {
"kind": "Name",
"value": "avatarUrl"
},
"selectionSet": null
}
]
}
}
]
}
}
我想知道如何为selectionSet
和selections
定义类型。
似乎在定义selections
时,我应该定义selectionSet
,因为它有一个类型为selectionSet
的字段。但是在定义selectionSet
时,我应该定义selections
有人可以用OCaml风格回答吗?我想将此JSON样式数据转换为记录。
答案 0 :(得分:3)
要定义mutualy递归类型或函数,可以使用关键字and
。在您的情况下,您的记录看起来像这样:
type selectionSet = {
t : t;
selections : selections list;
}
and selections = {
name : name;
selectionSet : selectionSet option;
}