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

如何使用JsonContent.Create处理@odata.id这类无效C#标识符属性?

解决JsonContent.Create处理特殊JSON属性的问题

针对@odata.id这类不符合C#标识符规则的JSON属性,有两种常用方法可以用JsonContent.Create生成对应的请求体:

方法一:匿名类型结合JsonPropertyName特性

利用C# 10及以上支持的匿名类型属性特性标注,指定JSON序列化后的属性名:

using System.Text.Json.Serialization;

// 构建请求
using var message = new HttpRequestMessage(HttpMethod.Post, myUrl);
message.Content = JsonContent.Create(new {
    [JsonPropertyName("@odata.id")] = "https://graph.microsoft.com/v1.0/directoryObjects/46026638-208d-4c03-bb85-d42f0c472484"
});

这种方式保留了匿名类型的简洁性,同时能精准控制JSON输出的属性名,类型更安全。

方法二:使用Dictionary<string, object>

直接用字典存储键值对,键可以是任意字符串,完美适配特殊命名的JSON属性:

// 构建请求体字典
var requestPayload = new Dictionary<string, object>
{
    { "@odata.id", "https://graph.microsoft.com/v1.0/directoryObjects/46026638-208d-4c03-bb85-d42f0c472484" }
};

// 创建请求
using var message = new HttpRequestMessage(HttpMethod.Post, myUrl);
message.Content = JsonContent.Create(requestPayload);

这种方式灵活性更高,适合属性数量多、命名复杂或动态生成请求体的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:07:34