Suite

API Javscript esri/dijit/search Réponse JSON

API Javscript esri/dijit/search Réponse JSON


Bonjour les gars, j'ai du mal à essayer d'analyser les données JSON renvoyées à partir d'une recherche dijit. J'ai le code suivant où s.set("value","48035") sera renseigné à partir d'une autre page, donc pour le moment, je le règle manuellement sur 48035.

var s = new Search({ enableButtonMode : true, //cela permet au widget de recherche de s'afficher sous la forme d'un seul bouton enableLabel : false, enableInfoWindow : true, showInfoWindowOnSelect : false, map : map }, "search"); s.set("valeur", "48035"); // j'ai essayé ce qui suit s.search().then(function (response) { var extra = response[0][0].x alert(extra) }); //et le suivant s.search().then(function (response) { var extra = response.candidates[0].location alert(extra.x) }); s.startup();

Il semble que peu importe ce que j'essaye ou fais, je ne peux pas comprendre comment obtenir la valeur renvoyée de x. Voici à quoi ressemblent les données JSON renvoyées.

{"spatialReference":{"wkid":4326,"latestWkid":4326},"candidates":[{"address":"48035, Clinton Township , Michigan","location":{"x":-82.9172080701955, "y":42.554260928999781},"score":100,"attributes":{"Addr_type"  :"Postal","Match_addr":"48035, Clinton Township, Michigan","StAddr":"","Ville": "Canton de Clinton"},"extent" :{"xmin":-82.922208999999995,"ymin":42.549261000000001,"xmax":-82.912209000000004,"ymax":42.559260999999999 }}]}

Vous devez importer le module json depuis Dojo. Il vous permettra de créer un objet JavaScript à partir de votre retour JSON et d'en faire ce que vous voulez avec.

Ainsi, si vous souhaitez créer un objet Geometry, vous pouvez analyser le JSON renvoyé avec lejsonmodule, obtenez votre objet JavaScript et créez-le à partir des propriétés de l'objet JavaScript dérivé.

Dire que votre objet est nomméretourJSONet vous voulez créer unIndiquerà partir de cela.

var returnJSON = JSON.parse(réponse.candidats[0]); var x = returnJSON.location.x; var y = returnJSON.location.y; //puis créez votre point ou ce que vous voulez faire