如何读取带有连字符属性的 Json 文件

pau*_*l h 1 c# json

我正在学习 C# 并尝试读取一些 json 文件。我已经学会了如何读取 ok ,除非属性用连字符连接 - 我不知道如何对 json 进行建模以反序列化它。

所以如果我有以下 Json:

{
    "prop1": "val1"
}
Run Code Online (Sandbox Code Playgroud)

我会这样做:

class MyJson
{
    public string prop1;
}

MyJson? myJson = JsonSerializer.Deserialize<MyJson>(jsonStr);
Run Code Online (Sandbox Code Playgroud)

但如果我有这个 Json:

{
    "prop-1": "val1"
}
Run Code Online (Sandbox Code Playgroud)

我显然不能这样做:

class MyJson
{
    public string prop-1;
}

MyJson? myJson = JsonSerializer.Deserialize<MyJson>(jsonStr);
Run Code Online (Sandbox Code Playgroud)

那么我该如何反序列化上面带有连字符属性的 Json 呢?

我发现了大量有关读取和写入 Json 的优质资源,但是当属性用连字符连接时却没有任何解释。

非常感谢。

Mad*_*ter 6

您可以使用[JsonPropertyName("name")]属性。像这样在你的财产上方使用它

class MyJson
{
    [JsonPropertyName("prop-1")]
    public string Prop1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用 时Newtonsoft,请改用[JsonProperty("name")]属性。