jQuery 如何在 JSON 中使用 if 语句?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15061952/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 14:18:23  来源:igfitidea点击:

How to use if statement inside JSON?

javascriptjqueryjson

提问by Montaser El-sawy

How to use if statement inside JSON Here is the code: .......................................................................................

如何在 JSON 中使用 if 语句 代码如下:...................................... ……………………………………………………………………………………………………………………………………………………………………………………………………

var config =
             [
                {
                    "name"      : "SiteTitle",
                    "bgcolor"   : "",
                    "color"     : "",
                    "position"  : "TL",
                    "text"      : "step1",
                    "time"      : 5000
                },
                {
                    "name"      : "Jawal",
                    "bgcolor"   : "",
                    "color"     : "",
                    "text"      : "step2",
                    "position"  : "BL",
                    "time"      : 5000
                },
                {
                    "name"      : "Password",
                    "bgcolor"   : "",
                    "color"     : "",
                    "text"      : "step3",
                    "position"  : "TL",
                    "time"      : 5000
                }
            ],

            //define if steps should change automatically
            autoplay    = false,
            //timeout for the step
            showtime,
            //current step of the tour
            step        = 0,
            //total number of steps
            total_steps = config.length;

This is the required result something like this:

这是所需的结果,如下所示:

    var config =
         [

    if(page==true)  {               
            {
                "name"      : "SiteTitle",
                "bgcolor"   : "",
                "color"     : "",
                "position"  : "TL",
                "text"      : "step1",
                "time"      : 5000
            },
            {
                "name"      : "Jawal",
                "bgcolor"   : "",
                "color"     : "",
                "text"      : "step2",
                "position"  : "BL",
                "time"      : 5000
            }
    } else {
            {
                "name"      : "Password",
                "bgcolor"   : "",
                "color"     : "",
                "text"      : "step3",
                "position"  : "TL",
                "time"      : 5000
            }
    }
        ],

            //define if steps should change automatically
            autoplay    = false,
            //timeout for the step
            showtime,
            //current step of the tour
            step        = 0,
            //total number of steps
            total_steps = config.length;

Actually this way is wrong and makes a JavaScript syntax error.

实际上这种方式是错误的,并且会导致 JavaScript 语法错误。

采纳答案by Blender

That's regular JavaScript, not JSON. Move the ifstatement outside:

那是普通的 JavaScript,而不是 JSON。将if语句移到外面:

if (page) {
    var config = [
        {
            "name"      : "SiteTitle",
            "bgcolor"   : "",
            "color"     : "",
            "position"  : "TL",
            "text"      : "step1",
            "time"      : 5000
        }, {
            "name"      : "Jawal",
            "bgcolor"   : "",
            "color"     : "",
            "text"      : "step2",
            "position"  : "BL",
            "time"      : 5000
        }
    ];
} else {
    var config = [
        {
            "name"      : "Password",
            "bgcolor"   : "",
            "color"     : "",
            "text"      : "step3",
            "position"  : "TL",
            "time"      : 5000
        }
    ];
}

回答by Erisan Olasheni

Validating the JSON Schema Draft-07, JSON now supports the if...then...elsekeywords for conditional data representation.

验证JSON Schema Draft-07,JSON 现在支持if...then...else条件数据表示的关键字。

{
    "type": "integer",
    "minimum": 1,
    "maximum": 1000,
    "if": { "minimum": 100 },
    "then": { "multipleOf": 100 },
    "else": {
        "if": { "minimum": 10 },
        "then": { "multipleOf": 10 }
    }
}

回答by james emanon

or perhaps this:

或者这个:

 var config =
  (page == true) ?
     [             
        {
            "name"      : "SiteTitle",
            "bgcolor"   : "",
            "color"     : "",
            "position"  : "TL",
            "text"      : "step1",
            "time"      : 5000
        },
        {
            "name"      : "Jawal",
            "bgcolor"   : "",
            "color"     : "",
            "text"      : "step2",
            "position"  : "BL",
            "time"      : 5000
        }
  :
        {
            "name"      : "Password",
            "bgcolor"   : "",
            "color"     : "",
            "text"      : "step3",
            "position"  : "TL",
            "time"      : 5000
        }
    ];

回答by DarkCrazy

You can do it this way also (not saying this is the best way but it's another way and could be useful in some scenarios)

你也可以这样做(不是说这是最好的方法,而是另一种方法,在某些情况下可能有用)

let config = [];
if (page) {
   config.push({
        "name"      : "SiteTitle",
        "bgcolor"   : "",
        "color"     : "",
        "position"  : "TL",
        "text"      : "step1",
        "time"      : 5000
    });
   config.push({
        "name"      : "Jawal",
        "bgcolor"   : "",
        "color"     : "",
        "text"      : "step2",
        "position"  : "BL",
        "time"      : 5000
    });
} else {
    config.push({
        "name"      : "Password",
        "bgcolor"   : "",
        "color"     : "",
        "text"      : "step3",
        "position"  : "TL",
        "time"      : 5000
    });
}