You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何将JSON属性值(非键名)转换为小写 - 反序列化场景

C# JSON 所有字符串属性值转小写实现方案

现有代码问题

  • 仅覆盖JObject类型节点处理逻辑,未适配JArray数组类型,无法遍历数组内的元素、嵌套对象
  • 仅对属性名执行了小写转换,未对字符串类型的属性值做任何处理
  • 递归分支不全,嵌套数组、多层级结构下的字符串值会被遗漏

正确实现代码

基于Json.NET(Newtonsoft.Json)实现通用递归逻辑,覆盖对象、数组、值三类节点,仅对字符串类型的值做小写转换,不改动其他类型值、不改动属性名:

using Newtonsoft.Json.Linq;

/// <summary>
/// 递归将JSON结构中所有字符串类型值转换为小写
/// </summary>
/// <param name="token">待处理的JToken节点</param>
private static void ConvertStringValuesToLower(JToken token)
{
    switch (token.Type)
    {
        case JTokenType.Object:
            // 遍历对象下所有属性,递归处理属性值
            foreach (JProperty property in token.Children<JProperty>().ToList())
            {
                ConvertStringValuesToLower(property.Value);
            }
            break;
        case JTokenType.Array:
            // 遍历数组下所有元素,递归处理每个元素
            foreach (JToken item in token.Children().ToList())
            {
                ConvertStringValuesToLower(item);
            }
            break;
        case JTokenType.String:
            // 字符串类型节点直接替换为小写值
            token.Replace(new JValue(token.Value<string>().ToLower()));
            break;
        // 数字、布尔、null、日期等非字符串类型不做处理
        default:
            break;
    }
}

调用方式

加载JSON后直接传入根节点调用即可:

// 从字符串/文件加载JSON结构
JObject rootJson = JObject.Parse(File.ReadAllText("你的JSON文件路径.json"));
// 执行转换
ConvertStringValuesToLower(rootJson);
// 获取转换后的JSON字符串
string convertedJson = rootJson.ToString();

转换效果

转换后将完全匹配预期,示例片段输出如下:

"name": "luke skywalker",
"hair_color": "blond",
"skin_color": "fair",
"birth_year": "19bby",
"gender": "male",
"films": [
    "https://swapi.dev/api/films/1/",
    "https://swapi.dev/api/films/2/",
    "https://swapi.dev/api/films/3/",
    "https://swapi.dev/api/films/6/"
]

补充说明

  • 如果需要同时将属性名转换为小写,在JTokenType.Object分支的循环内添加属性替换逻辑即可,仅转值时无需修改属性名
  • 所有非字符串类型值(如示例中的count: 82数字、previous: null空值)会保持原有类型和值,不会出现转换错误
  • 支持任意层级的对象、数组嵌套,不会遗漏深层的字符串值

内容的提问来源于stack exchange,提问作者User456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:57:19