我有一堂课是这样的:
[JsonObject(MemberSerialization.OptIn)]
public class foo
{
[JsonProperty("name_in_json")]
public string Bar { get; set; }
// etc.
public Dictionary<string, bool> ImageFlags { get; set; }
}
JSON 最初是从 CSV 文件生成的,每一行代表一个 foo 对象 - 它基本上是扁平的,所以我需要将某些键映射到 imageflags。
我尝试根据示例编写一个 CustomCreationConverterhere http://geekswithblogs.net/DavidHoerster/archive/2011/07/26/json.net-custom-convertersndasha-quick-tour.aspx.
这似乎可以很好地映射标志,但它无法设置正常属性 - 它查找“bar”而不是“name_in_json”。
我将如何获取 foo 类型的对象的“name_in_json”值?
edit:
这是一篇旧文章,但我想建议稍作修改,我认为这样更干净。 (最近遇到了同样的问题)它使用匿名类型。
var pairs = objectType
.GetProperties()
.Select(p => new {
Property = p,
Attribute = p
.GetCustomAttributes(
typeof(JsonPropertyAttribute), true)
.Cast<JsonPropertyAttribute>()
.FirstOrDefault() });
var objProps = pairs
.Where(p => p.Attribute != null)
.ToDictionary(
p => p.Property.Name,
p => p.Attribute.PropertyName);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)