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

是否可以不经过对象序列化反序列化将Pascal Case JSON转换为Camel Case JSON?

问题根因

你现有代码的错误逻辑在于直接将原始JSON字符串作为string类型传入序列化方法:

  • 转义字符问题:JsonSerializer会将输入的字符串当做普通文本序列化,内部的双引号会被强制转义,因此出现\u0022这类Unicode转义字符
  • 驼峰转换失效:序列化器没有解析原始JSON的结构,自然不会对属性名做大小写转换处理

解决方案

不需要定义自定义业务实体类,可通过JsonNode类型做中间转换,完全满足你不做业务对象反序列化的需求:

完整代码示例

using System.Text.Json;
using System.Text.Encodings.Web;

// 配置序列化规则
JsonSerializerOptions jsonOptions = new() 
{ 
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
    // 关闭不必要的Unicode转义,输出标准双引号
    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};

// 原始Pascal Case JSON字符串
var pascalPayload = "{\"Id\":\"1\",\"Type\":\"Confectionary\"}";

// 解析为通用JSON节点,无需绑定自定义模型
JsonNode? jsonNode = JsonSerializer.Deserialize<JsonNode>(pascalPayload);

// 序列化后即可得到Camel Case格式的JSON字符串
var camelCasePayload = JsonSerializer.Serialize(jsonNode, jsonOptions);

输出结果

{"id":"1","type":"Confectionary"}

完全符合你的预期输出要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:48:02