Web API 2 Json输出小写和下划线

Web API 2 Json输出小写和下划线,json,rest,asp.net-web-api,json.net,asp.net-web-api2,Json,Rest,Asp.net Web Api,Json.net,Asp.net Web Api2,在将以下JsonFormatter的ContractResolver配置从PascalCase(默认)转换为camel大小写之后,我将在camel大小写中获得以下Json输出 但是,我更喜欢用小写和下划线来实现Json输出(大写应该替换为下划线)。有什么想法吗?:) 类属性 public int MenuId { get; set; } public byte TypeId { get; set; } public string MenuName { get; set; } public str

在将以下JsonFormatter的ContractResolver配置从PascalCase(默认)转换为camel大小写之后,我将在camel大小写中获得以下Json输出

但是,我更喜欢用小写和下划线来实现Json输出(大写应该替换为下划线)。有什么想法吗?:)

类属性

public int MenuId { get; set; }
public byte TypeId { get; set; }
public string MenuName { get; set; }
public string Description { get; set; }
public string Tooltip { get; set; }
public byte? Minimum { get; set; }
public byte? Maximum { get; set; }
public bool CanMultiSelect { get; set; }
public byte SortOrder { get; set; }
驼峰式Json输出

"items": [
    {
      "menuId": 82,
      "typeId": 1,
      "menuName": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "canMultiSelect": false,
      "sortOrder": 0
    },
    {
      "menuId": 83,
      "typeId": 1,
      "menuName": "sdfad",
      "description": "fsdfda",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "canMultiSelect": false,
      "sortOrder": 0
    }
]}
"items": [
    {
      "menu_id": 82,
      "type_id": 1,
      "menu_name": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "can_multi_select": false,
      "sort_order": 0
    },
    {
      "menu_id": 82,
      "type_id": 1,
      "menu_name": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "can_multi_select": false,
      "sort_order": 0
    }
]}
首选输出

"items": [
    {
      "menuId": 82,
      "typeId": 1,
      "menuName": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "canMultiSelect": false,
      "sortOrder": 0
    },
    {
      "menuId": 83,
      "typeId": 1,
      "menuName": "sdfad",
      "description": "fsdfda",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "canMultiSelect": false,
      "sortOrder": 0
    }
]}
"items": [
    {
      "menu_id": 82,
      "type_id": 1,
      "menu_name": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "can_multi_select": false,
      "sort_order": 0
    },
    {
      "menu_id": 82,
      "type_id": 1,
      "menu_name": "dsf",
      "description": "sdafsdafsd",
      "tooltip": null,
      "minimum": null,
      "maximum": null,
      "can_multi_select": false,
      "sort_order": 0
    }
]}

您需要创建从DefaultContractResolver继承的自定义ContractResolver。看见然后,可以在属性名称中的字符周围循环,并插入下划线/根据需要将字符设置为小写