如何在JSON中表示变量(总和类型)?
代数数据类型是准确描述数据的方便方法。JSON中的产品类型没有问题。但是,尚不清楚什么是求和类型,因此如何在JSON中表示变量类型?可能使用带有如何在JSON中表示变量(总和类型)?,json,functional-programming,variant,Json,Functional Programming,Variant,代数数据类型是准确描述数据的方便方法。JSON中的产品类型没有问题。但是,尚不清楚什么是求和类型,因此如何在JSON中表示变量类型?可能使用带有值和标记属性的对象表示法?例如: { "someVariant": { "value": 25, "tag": "currentFormOfTheVariant" } } 对象和特殊格式的字符串基本上是JSON中自描述数据类型的唯一实际选项。以以下变量类型为例 data Tree = Empty
值和标记属性的对象表示法?例如:
{
"someVariant": {
"value": 25,
"tag": "currentFormOfTheVariant"
}
}
对象和特殊格式的字符串基本上是JSON中自描述数据类型的唯一实际选项。以以下变量类型为例
data Tree = Empty
| Leaf Int
| Node Tree Tree
在JSON中,您可以使用以下三种形式来指定这三种变体
Variant | JSON
--------+---------------
Empty | null
--------+---------------
Leaf | {
| "leaf": 7
| }
--------+---------------
Node | {
| "node": [
| <tree>,
| <tree>
| ]
| }
Variant | JSON
--------+---------------
空|空
--------+---------------
叶|{
|“叶子”:7
| }
--------+---------------
节点|{
|“节点”:[
| ,
|
| ]
| }
基本上,使用带有单个键值对的JSON对象,其中键是选定的变量。@Timothy:编辑澄清了。看起来您的意思是Leaf->
,这些部分是JSON的一部分。但通过编辑,它看起来更像是一个两列布局(您可能希望进一步明确)