我试图从API检索JSON数据,但其中一个属性名称来自@data.context
。它不是一个嵌套属性。我也用ExpandoObject测试过,它就是那样的。通常在c#中,我会创建一个像
public class Data
{
public string @odata.context { get ; set; }
}
但是这不起作用,因为c#不允许我在变量名中使用逗号,也不允许在它周围使用引号。@
符号已经在那里了
JSON是这样的:这个属性包含一个链接,然后另一个包含一个对象列表。
{
"@odata.context": "some link here",
"list" [ {}, {}
]
}
对象列表没有给我任何麻烦,只有第一个属性。
您可以使用JsonPropertyName属性将json映射到属性,例如:
[JsonPropertyName("@odata.context")]
public string DataContext { get ; set; }
微软文档
您可能正在使用设计不良的API。有一些API规范告诉我们如何构造和命名JSON键。一种方法是
1从API获取JSON响应
2替换"@data.context"与"Context"或者类似的JSON字符串
创建属性为 的类public class Data
{
public string Context { get ; set; }
}
4反序列化