c# - json 需要一个属性 "@class"。如何在c#中定义

标签 c# json serialization json.net

我正在与一个 API 进行交互,其中预期的 json 包含一个名为“@class”的属性。

为了澄清(正如在这里多次被问到的那样),如果该属性只是简单地称为“类”,那么您可以在前面添加符号“@”以逃避我们正在使用保留的事实单词,例如:

public string @class { get; set; }

但是在这种情况下,属性名称包含“@”符号。我无法更改类的定义,因为它不是我可以更改的。

正如您所料,json2csharp 不喜欢它,通过它运行示例 json 会返回:

public string __invalid_name__@class { get; set; } 

这似乎完全合理!

除了在发送之前立即在 json 上使用 string.replace(我觉得这很脏!)之外,还有什么办法可以解决这个问题吗?

最佳答案

如果你可以使用 Json.NET,你可以很容易地通过属性指定它:

public class Test
{
    [JsonProperty("@class")]
    public string Name { get; set; }
}

关于c# - json 需要一个属性 "@class"。如何在c#中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741752/

相关文章:

c# - 如何为依赖于 SerialPort 的类编写单元测试?

java - 解析动态 json

c# - 确保参数是可序列化的?

c# - DDD "View Objects"?

c# - C#中switch语句的多个变量

ios - 如何实现延迟json文件下载?

c# - 将对象动态转换为基类型

recursion - jackson :如何通过仅在子集合中添加 ID 字段来防止递归调用

c# - 如何在 Linux 上用 C# 启动服务

javascript - 如何在循环并进行异步 promise 调用后获取重新格式化的 json 对象