2010-10-21 9 views
1

J'ai un contrôleur dans ASP.net MVC délivrant un JsonResult comme ceci:Comment puis-je créer une sortie JSON spécifique à utiliser avec les graphiques les plus élevés?

return Json(new { [...] }, JsonRequestBehavior.AllowGet); 

... qui ressemble à ceci:

"data":{"41_A4N1A-1":0,"41_A4N1A-2":0,"41_C4G1A-1":0,"41_C4G1A-2":0,"41_R2N1S-1":0,... 

Cependant, les documents de Highcharts indiquent que les données sont attendues comme ceci:

"data":{"41_A4N1A-1",0},{"41_A4N1A-2",0},{"41_C4G1A-1",0},{"41_C4G1A-2",0},{"41_R2N1S-1",0},... 

Notez les virgules au lieu de deux-points et les accolades pour chaque valeur. Quelle structure de données .Net produirait ces derniers résultats lors de la sérialisation? Ou dois-je utiliser une bibliothèque différente/lancer la mienne?

+0

Pourriez-vous lier à ces documents, car ce que vous avez montré est invalide JSON? –

+0

Pourriez-vous fournir toute la ligne de retour? J'ai déjà traité de cela et je me souviens d'avoir utilisé la méthode .ToArray() pour afficher les données de la bonne façon. –

Répondre

0

Vous pouvez essayer Json.net

Utilisez-le pour sérialiser la façon dont vous voulez (Assurez-vous qu'il peut obtenir le format, je suis sûr qu'il peut) puis juste passer la sortie de chaîne pour résultat contenu et de définir le type de contenu , etc ...

Désolé je n'ai pas d'exemple basé sur vos données mais cela devrait fonctionner.

0

Comme je l'actualité commentée, voici un exemple de la façon dont je l'utilise dans mon code d'une manière qui renvoie les données correctement:

return Json(new PeriodList().ToArray(), JsonRequestBehavior.AllowGet); 

Bien que cette méthode ne devrait pas exister dans mon code, le résultat vient juste comme prévu. Cela dépend aussi de la façon dont vous traitez vos objets Json. En lisant votre résultat Json, je vois qu'il y a une propriété appelée 41_A4N1A-1 avec la valeur 0 par exemple.

De plus, quelle structure de données utilisez-vous dans l'instruction return? Cela pourrait affecter le résultat.