考虑到下面的课程,

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

    public string Message { get; set; }
}

I am returning one of these in a Controller action like so,

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

然而,我的客户端框架希望这些属性是小写的success和message.不需要使用小写属性名,这是实现正常Json函数调用的一种方法吗?

推荐答案

实现这一点的方法是实现如下定制JsonResult:

并使用支持这种行为的可选序列化程序,如JSON.NETe.g.:

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"
  ]
}

Json相关问答推荐

PowerShell脚本-替换json数组(转义$var将被视为不带双引号的文本)

在Ansible中从json中提取特定数据

如果主对象中已存在属性,则不应在Jolt中引用次对象

将不带正文的 CURL POST 转换为 RESTRequest Delphi 代码 / 为 Dropbox API /get_current_account 端点编写 Delphi 代码

在 postgres 14 中将记录转换为所需的 json 格式

使用 jq 从字符串列表开始创建对象

如何在 terraform 输出中打印一组用户信息

如何在 Apps 脚本中循环遍历 JSON 响应

无法使用 vue.js 访问 JSON 数组的项目

用于遮蔽卡的 Jolt 规格

嵌套 JSON 到 CSV(多级)

从 json 对象中过滤掉所有出现的给定属性

如何在 Django 的模板语言中获取 json 键和值?

JSON extract\set 的 SQLite JSON1 示例

如何获取json格式的KendoGrid显示数据?

jQuery AJAX 和 JSON 格式

嵌套 JSON:如何向对象添加(推送)新项目?

使用 JSON.Net 的 C# 到 JSON 序列化

如何从 MVC 控制器返回 Json 对象以查看

为什么 RestTemplate 不将响应表示绑定到 PagedResources?