Вынудите строчные имена свойства покинуть Json () в ASP.NET MVC

Учитывая следующий класс,

public class Result
{      
    public bool Success { get; set; }

    public string Message { get; set; }
}

Я возвращаю один из них в действии Контроллера как так,

return Json(new Result() { Success = true, Message = "test"})

Однако моя клиентская платформа ожидает, что эти свойства будут строчным успехом и сообщением. На самом деле не имея необходимость иметь строчные имена свойства то, что способ достигнуть этой мысли нормальный вызов функции Json?

80
задан Hakan Fıstık 20 November 2017 в 14:36
поделиться

1 ответ

Для этого можно реализовать собственный JsonResult , как здесь: Создание настраиваемого ValueType и сериализация с помощью настраиваемого JsonResult (исходный ссылка мертва) .

И используйте альтернативный сериализатор, такой как JSON.NET , который поддерживает такое поведение, например:

Product product = new Product
{
  ExpiryDate = new DateTime(2010, 12, 20, 18, 1, 0, DateTimeKind.Utc),
  Name = "Widget",
  Price = 9.99m,
  Sizes = new[] {"Small", "Medium", "Large"}
};

string json = 
  JsonConvert.SerializeObject(
    product,
    Formatting.Indented,
    new JsonSerializerSettings 
    { 
      ContractResolver = new CamelCasePropertyNamesContractResolver() 
    }
);

Результаты в

{
  "name": "Widget",
  "expiryDate": "\/Date(1292868060000)\/",
  "price": 9.99,
  "sizes": [
    "Small",
    "Medium",
    "Large"
  ]
}
127
ответ дан 24 November 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: