J'aimerais utiliser une référence pour faire référence à un objet existant dans ma structure JSON ; accéder spécifiquement à ses clés et valeurs.

J'ai pensé qu'il était raisonnable de doit pouvoir faire référence à un objet existant, puis d'utiliser la notation par points pour accéder auxdites clés et valeurs - mais il est plus probable que je comprends mal la technologie.

var courses = {
            Engl101 : {
                course : "English 101",
                units : 5,
                req_type : false ,
                req: false
            },
            Engl112: {
                course : "English 112",
                units : 3,
                req_type : "prerequisite" ,
                req: { "$ref": "#/courses/Engl101"}
            }
        }

Je m'attendais à pouvoir accéder ensuite à mon cours préalable avec

courses.Engl112.req 

Ce que j'obtiens en fait semble être une chaîne sans accès aux clés/valeurs enfants.

De plus, j'ai essayé d'accéder via Object.keys(courses.Engl112.req) avec des variations de [0] indices numérotés sans réel progrès.

Est-ce faisable et merci d'avance ?

1
JAdamHunt 14 mars 2019 à 22:26

2 réponses

Meilleure réponse

Si vos cours sont uniques par nom, vous pouvez mettre

req: "English101"

Vous pourrez alors accéder aux cours obligatoires en

courses[courses.Engl112.req]
0
Pierre 14 mars 2019 à 19:42

Avec du JavaScript pur, vous ne pouvez pas faire une telle chose. Mais certaines bibliothèques existent pour prendre en charge les références internes et externes en JSON. Un célèbre : json-schema-ref-parser.

0
Brice Argenson 14 mars 2019 à 19:38