2010-10-14 19 views
0

Je suis en train d'utiliser JSON décodé comme un fournisseur de données, mais peu importe ce que j'essaie je reçois des erreurs telles que les suivantes:Actionscript: impossible d'assigner l'objet décodée JSON comme dataProvider

Error #1034: Type Coercion failed: cannot convert  
mx.collections::[email protected] to fl.data.DataProvider. 

Je ne retournais une simple tableau d'objets JSON de 3 éléments avec 3 propriétés chacun.

que je fais actuellement les suivantes:

var arr:Array = (JSON.decode(rawData) as Array); 

    var dp:ArrayCollection = new ArrayCollection(arr); 

    grid.dataProvider = dp; 

EDIT - PLUS D'INFO

Si je change la dernière ligne du code ci-dessus pour

 grid.dataProvider = new DataProvider(dp); 

Je reçois le texte suivant erreur

TypeError: Error: Type Coercion failed: 
    cannot convert [object Object],[object Object] to Array or DataProvider. 
+0

Est-ce une application modulaire? L'erreur ressemble à celle que vous verriez lorsque vous essayez d'utiliser une classe en dehors du domaine dans lequel elle a été importée. –

+0

@Ryan Il est/sera, mais pour le moment tout le code est dans un seul fichier .as nommé comme le fichier .fla qui contient le composant DataGrid – Dve

+0

Et vous êtes sûr que vous ne viole pas et les règles crossdomain? Voir ici http://blog.aleksandarandreev.com/?tag=error-1034 –

Répondre

1

Qu'est-ce qui change la dernière ligne à cela?

grid.dataProvider = new DataProvider(arr); 
+0

Cela n'a pas fonctionné ... voir la modification à mon message original. – Dve

+0

Je vois l'édition, mais il semble que vous essayez de lancer la collection de tableaux dp à un DataProvider et non le tableau arr –

+0

Appologies .. J'ai essayé ce que vous avez suggéré .... et cela fonctionne !! Typiquement, la seule chose que je n'avais pas essayé! Merci beaucoup Ryan – Dve