Vous pouvez simplement utiliser la notation dot:
var platformObj = {filters: {manufacturer: ["Adobe Windows"]}};
// the type of platformObj is `{filters:{manufacturer:Array<String>}}` in this case
trace(platformObj.filters.manufacturer);
Ou vous pouvez utiliser StringMap:
var platformObj = ["filters" => ["manufacturer" => ["Adobe Windows"]]];
// the type of platformObj is `Map<String, Map<String, Array<String>>>` in this case
trace(platformObj["filters"]["manufacturer"]);
Haxe n'a pas Object
, mais a Dynamic. Vous pouvez récupérer ses champs à l'aide Reflect:
var platformObj:Dynamic = {filters: {manufacturer: ["Adobe Windows"]}};
var filters = Reflect.field(platformObj, "filters");
var manufacturer = Reflect.field(filters , "manufacturer");
trace(manufacturer);
Lorsque vous utilisez Haxe 3.3+ vous pouvez utiliser Any
au lieu de Dynamic
.
Les deux premiers sont plus sûrs à utiliser. Le dernier utilisant la dynamique/réflexion peut avoir des effets secondaires.
La troisième option était exactement ce que je cherchais, et me semble la plus logique, en fait j'étais sur le point de travailler sur ce point - Heureusement, j'ai demandé, c'est agréable de connaître les autres façons de le faire! –