Les web api sérialiser dictionnaire avec la valeur de la clé comme clé à l'aide de l'attribut de données

J'ai un dictionnaire dont je suis la sérialisation à l'aide de la json.net sérialiseur, et il est en train de produire

{"phrases":[{"Key":"my-key1","Value":"blah"},{"Key":"my-key2","Value":"blah2"}]}

cependant, je veux à la sortie

{"phrases":["my-key1":"blah"},{"my-key2":"blah2"}]}

mon modèle ressemble

public class Phrases
{
    public Dictionary<string, string> phrases;
}

Est-il un attribut de données que je peux appliquer à des phrases du modèle à l'origine de ce problème?

J'ai trouvé ce qui suit, mais ne veulent pas retourner une chaîne de Sérialiser à une valeur-clé de dictionnaire avec Json.Net?

Mise à JOUR:

Je suis l'extension de l'api web contrôleur comme suit, si j'utilise JsonConvert.SerializeObject() je ne reçois le bon de sérialisation , mais je ne puis avoir une chaîne de retour.

public class PhraseController : ApiController
    {
        private IApplicationModel applicationModel;

        public Phrases Get(string id)
        {
            var locale = new CultureInfo(id).LCID;
            var phrases = applicationModel.Phrases.Where(x => x.Locale = locale).ToDictionary(x => x.Name, y => y.Value);

            return new Phrases() { phrases = phrases };
        }

        public PhraseController(IApplicationModel applicationModel)
        {
            this.applicationModel = applicationModel;
        }
    }
Qui json.net version utilisez-vous? Parce que le "Newtonsoft.Json" version="4.0.8" ce produit: {"phrases":{"my-key1":"blah","my-key2":"blah2"}} à l'aide de JsonConvert.SerializeObject(phrases);
avoir mis à jour ma question
Je me demande si mon problème est qu'il est encore à l'aide de la DataContractJsonSerializer au lieu de json.net

OriginalL'auteur Tom | 2012-05-18