当前位置: 首页 > 面试题库 >

在ASP.NET MVC中从Json()强制使用小写属性名称

陈渊
2023-03-14
问题内容

鉴于以下课程,

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

    public string Message { get; set; }
}

我将在这样的Controller动作中返回其中之一,

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

但是我的客户端框架期望这些属性是小写的成功和信息。不必实际上具有小写的属性名称,是否可以通过正常的Json函数调用来实现这一想法?


问题答案:

实现此目的的方法是在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"
  ]
}


 类似资料:
  • 根据指定对象创建一个新对象,使其所有的 key 都小写。 使用 Object.keys() 和 Array.reduce() 根据指定对象创建一个新对象。 使用 String.toLowerCase() 将原始对象中的每个 key 转换为小写。 const lowercaseKeys = obj => Object.keys(obj).reduce((acc, key) => { ac

  • 我怎样才能打开下面的(大写字母标签,即

  • 问题内容: 我有一堂课,有以下领域。这些属性用于在需要调用外部rest API方法时序列化为json对象。 在属性名称中,外部API服务调用需要一些类似json归档名称格式的内容。 就我而言,这可以根据诸如test,dev和prod之类的环境进行更改。因此,我正在寻找一种将listId值移动到app.config中的方法。 我尝试按照以下方式进行操作,但不允许这样做。如果分配常数值,它将起作用。

  • 和标题差不多。我在请求正文中有一个可选对象。但是,如果给定了该对象,则它必须包含几个子属性。 我的OpenAPI组件配置如下所示: 我正在使用express openapi validator来验证这一点。现在,我不明白这是否是express openapi validator包的问题,但可选字段(partner)的必填字段(名称、电话)从未验证过。我可以只提供合作伙伴:{},然后直接插入,或者甚

  • 我有一个spring rest服务,它接受Person对象。Person对象具有名称、电话号码和电子邮件。当添加一个人时,电话号码是强制性的。如果存在电话号码属性,它将使用或或验证是否为空。但是如果属性不存在,验证就不起作用。请建议提供任何验证注释,以检查JSON请求中是否存在该属性。 以下是请求体测试用例 {“name”:“anu”,“phonenumber”:“”,“email”:“test@

  • 问题内容: 我正在使用Python(2.7)’json’模块来处理各种JSON feed。不幸的是,这些提要中的某些不符合JSON标准- 特别是某些键没有用双语音标记(“)包装。这导致Python出现错误。 我想写一个丑陋的代码来解析和修复传入的数据之前,我想问一下-有什么方法可以让Python解析此格式错误的JSON或“修复”数据,以便有效的JSON? 工作实例 破例 我编写了一个小的REGEX