使用 System.Text.Json 设置 属性 名称以在 JSON 中包含 @

Setting property name to include @ in JSON using System.Text.Json

我需要通过 REST 发送(不包括其他一些敏感信息):

{"@Scope": "Local"}

在 class 文件中我 JsonProperty 用于 Json.Net 序列化:

[JsonProperty("@Scope")]
public string Scope { get; set; }

将要通过 WebRequest 发送的 json 消息放在一起时,我有

{@Scope = "Local"}

但在运行之后:

string jsonString = System.Text.Json.JsonSerializer.Serialize(message);

正在发送的消息是

{"Scope": "Local"}

出于某种原因,我虽然 System.Text.Json 会选择 JsonProperty 属性,但显然应该有其他方式。

尝试使用

[JsonPropertyName("@Scope")]

而不是

[JsonProperty("@Scope")]

JsonProperty 可能适用于内置序列化库可能无法识别的 Newtonsoft。