首页 > 解决方案 > 复杂字符串转换为 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"
  }]
}

注意:这是一个测试用例,正在努力使其工作。任何想法将不胜感激。

标签: javascriptjqueryjson

解决方案


推荐阅读