2012-03-07 8 views
1

Comment changer le nom des champs dans la sortie Json Je veux que le nom de la classe soit cuit et que le champ "time1" soit autre chose. J'utilise la classe de contrôleur mvc asp.net pour renvoyer le résultat JSON.asp.net mvc json Attributs de sérialisation

public class Cook 
    { 
     public string time1; 
     public string time2; 
     public string time3; 

    } 

Répondre

2

Qu'en est quelque chose comme ça ...

public ActionResult GetCook() 
{ 
    var cook = new Cook(); 
    return Json(new 
    { 
     atime = cook.time1, 
     anothertime = cook.time2, 
     yetanothertime = cook.time3 
    }); 
} 
+0

J'ai quelques noms avec des caractères spéciaux où je ne peux pas avoir cela comme noms de propriété. – pili

+0

Si vous voulez une meilleure réponse, vous pourriez vouloir être plus précis sur ce que vous essayez d'obtenir. En fin de compte, vous devrez peut-être écrire votre propre JSON. Le format est assez simple (http://www.json.org/). – Brian

0

Vous pouvez écrire votre que valeur de l'attribut personnalisé et l'accès par ViewData.ModelMetadata (assurez-vous que votre classe d'attributs implémente IMetadataAware). Puis créez votre propre classe JSON qui met toutes vos propriétés et ses valeurs dans un dictionnaire. La clé pour chaque propriété sera le nom que vous spécifiez dans votre attribut personnalisé.

Cela peut sembler un peu cryptique peut-être, mais si vous pensez que vous aimez cette approuch je peux vous donner un exemple de code. Bonne chance!

Questions connexes