javascript - 复杂字符串转换为 JSON 格式
问题描述
我有一个复杂的字符串转换JSON
并且有点不知道如何去做。基本上,要求是一个接受字符串参数并以特定JSON
格式返回预期数据的函数。因此,对于该功能,我可以执行以下操作:
function myfunction(value)
{
console.log(value);
}
由于我是JSON
格式的新手,并且正在查看一些将字符串转换为JSON
格式的教程,因此最终找到了用于转换的内容:
console.log(JSON.stringify({ a: 10, b: 20 }));
因此,对于我的情况,我猜我可以执行以下操作:
console.log(JSON.stringify(value));
现在我的字符串格式有点复杂而且不确定,我怎么能做如下的转换,因为它暗示了一些逻辑?
输入:
if($A == $B) {
if($C == $D) {
if($E == $F) {
} else if($G == $H) {
} else if($I == $J) {
}
else if($K == $L) {
} else if($M == $N) {
if($AAA == $BBB) {
}
else if($CCC == $DDD) {
}
}
} else if($O == $P) {
if($Q == $R) {
if($S == $T) {
if($U == $V) {
}
}
}
}
} else if($W == $X) {
if($C == $D) {
if($E == $F) {
} else if($G == $H) {
} else if($I == $J) {
}
if($K == $L) {
} else if($M == $N) {
if($AAA == $BBB) {
}
else if($CCC == $DDD) {
}
}
} else if($O == $P) {
if($Q == $R) {
if($S == $T) {
if($U == $V) {
}
}
}
}
} else if($Y == $Z) {
}
输出:
{
"or":[
{
"and":[
{
"field": "A",
"operator": "==",
"value": "B"
},
{
"or":[
{
"and":[
{
"field": "C",
"operator": "==",
"value": "D"
},
{
"and":[
{
"or":[
{
"field": "E",
"operator": "==",
"value": "F"
},
{
"field": "G",
"operator": "==",
"value": "H"
},
{
"field": "I",
"operator": "==",
"value": "J"
},
{
"field": "K",
"operator": "==",
"value": "L"
},
{
"and":[{
"field": "M",
"operator": "==",
"value": "N"
},
{
"and":[
{
"or":[
{
"field": "AAA",
"operator": "==",
"value": "BBB"
},
{
"field": "CCC",
"operator": "==",
"value": "DDD"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"or":[
{
"and":[
{
"field": "O",
"operator": "==",
"value": "P"
},
{
"and":[
{
"and":[
{
"and":[
{
"field": "U",
"operator": "==",
"value": "V"
}
]
},
{
"field": "S",
"operator": "==",
"value": "T"
}
]
},
{
"field": "Q",
"operator": "==",
"value": "R"
}
]
}
]
}
]
}
]
},
{
"and":[
{
"field": "W",
"operator": "==",
"value": "X"
},
{
"or":[
{
"and":[
{
"field": "C",
"operator": "==",
"value": "D"
},
{
"and":[
{
"or":[
{
"field": "E",
"operator": "==",
"value": "F"
},
{
"field": "G",
"operator": "==",
"value": "H"
},
{
"field": "I",
"operator": "==",
"value": "J"
},
{
"field": "K",
"operator": "==",
"value": "L"
},
{
"and":[{
"field": "M",
"operator": "==",
"value": "N"
},
{
"and":[
{
"or":[
{
"field": "AAA",
"operator": "==",
"value": "BBB"
},
{
"field": "CCC",
"operator": "==",
"value": "DDD"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"or":[
{
"and":[
{
"field": "O",
"operator": "==",
"value": "P"
},
{
"and":[
{
"and":[
{
"and":[
{
"field": "U",
"operator": "==",
"value": "V"
}
]
},
{
"field": "S",
"operator": "==",
"value": "T"
}
]
},
{
"field": "Q",
"operator": "==",
"value": "R"
}
]
}
]
}
]
}
]
},
{
"field": "O",
"operator": "==",
"value": "P"
}]
}
注意:这是一个测试用例,正在努力使其工作。任何想法将不胜感激。
解决方案
推荐阅读
- winapi - win32资源中的图标名称?
- azure - Github 操作 Azure 部署 python 应用
- mysql - 左连接表在键列中有重复值
- django - 用户可以是教师、管理员、家长或学生。如何使用 Django 模型实现这一点?
- ruby-on-rails - Rails [AXLSX]:更改货币
- node.js - Typegoose + nestjs + mongodb:索引未使用@index 装饰器创建
- java - 直接从 Java 创建数据库和表
- python - root.after() 循环在一个分配的时间内循环两次
- function - 为什么这个运动功能不能正常工作?(LUA/Corona SDK)
- javascript - 如何使用 Vanilla Javascript 在另一个 html 文件中包含一个 html 文件?