10
votes

Comment utiliser si la déclaration à l'intérieur du JSON?

Comment utiliser si la déclaration à l'intérieur du JSON est le code: .......................................................... ...........................................

    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;


0 commentaires

5 Réponses :


4
votes

C'est régulier JavaScript, pas JSON. Déplacez le si code> Déclaration extérieure:

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
        }
    ];
}


7 commentaires

Cela fera une erreur de syntaxe car vous avez un code complémentaire, AutoPlay = False, ShowTime, étape = 0, total_steps = config.length;


@ Montaserel-Sawy: Non, pas vraiment. Essayez-le.


Essayé le code sera le suivant: Si (ParamètresPage) {var config = [{"Nom": "Sitetertitle", "BGColor": "", "Couleur": "", "TL": "TL": "TL" : "Step1", "temps": 5000}]; } else {var config = [{"nom": "mot de passe", "bgcolor": "" "," couleur ":" "," Texte ":" Step3 "," TL ":" TL ": 5000}]; }, AutoPlay = false, showtime, étape = 0, total_steps = config.length; Essayez-le et dites-moi ce qui se passe ??


Vous avez une virgule après le dernier support de la déclaration , mais en dehors de cela, cela devrait fonctionner.


@ Montasérel-Sawy: vous devez vous en débarrasser et rendre vos déclarations variables locales en les préparé avec var .


Désolé je ne suis pas professe dans JavaScript et JQuery pourriez-vous le faire pour moi?


@ Montaserel-Sawy: Nope, vous le comprenez.



0
votes

ou peut-être ceci: xxx


2 commentaires

Non, il ne fonctionne pas car une fois si la déclaration, je dois mettre un code complémentaire comme celui-ci:, AutoPlay = False, ShowTime, étape = 0, étapes totale = config.length;


Vous auriez pu juste ajouter une virgule à la fin du dernier support pour mon code ci-dessus.



0
votes

Vous pouvez le faire de cette façon également (ne pas dire que c'est le meilleur moyen, mais c'est un autre moyen et pourrait être utile dans certains scénarios)

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
    });
}


0 commentaires

14
votes

Valider le JSON Schema Draft-07 , Json prend désormais en charge le si ... alors ... d'autre code> Mots-clés de la représentation conditionnelle de données.

Voici un exemple rapide: p>

{
    "if": {
        "page": true
    },
    "then": [
        {
            "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
        }
    ]
}


6 commentaires

Je pense que celui-ci devrait être la bonne réponse, selon les mises à jour récentes.


J'espère que vous pourriez adapter votre exemple à la question, plutôt que de fournir l'exemple que je viens de voir dans les notes de publication de VSCODE 1.27.2.


@Leo Ceci est l'exemple d'illustration standard comme indiqué par JSON-SHEMA.ORG , qui peut être trouvé ici => Json-schema.org/unerstanding-json-schema/reference/ ... . Bien que cela ait été ajouté comme exemple dans la dernière version du code VS, mais cela ne signifie pas qu'il a été copié. Même si c'était, c'est une illustration de la façon dont cela fonctionne, alors je ne pense pas que ce soit mauvais


@Erisan pas mal, mais pas une réponse. Envisagez de ne pas ignorer l'exemple de l'OP.


@Leo oh bien, c'est une réponse, mais pas illustrer les exemples de l'OP. Merci quand même.


Merci, j'ai fait une édition pour utiliser les exemples de l'OP.



0
votes

Vous pouvez ajouter un si intérieur JSON.

const config = [
...(page ? [
     {
        "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
    }]),
];


0 commentaires