Заставить веб-API сериализовать словарь со значением ключа в качестве ключа, используя атрибут данных

У меня есть словарь, который я сериализую с помощью сериализатора json.net, и в настоящее время он производит

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

однако я хочу, чтобы он выводил

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

моя модель выглядит так

public class Phrases
{
    public Dictionary phrases;
}

Есть ли атрибут данных I можно применить к модели фраз, чтобы это произошло?

Я обнаружил следующее, но не хочу возвращать строку Сериализировать в словарь ключ-значение с помощью Json.Net?

ОБНОВЛЕНИЕ:

Я расширяю контроллер веб-API следующим образом: если я использую JsonConvert.SerializeObject(), я получаю правильную сериализацию, однако тогда у меня будет возвращаемая строка.

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;
        }
    }

6
задан Community 23 May 2017 в 11:52
поделиться