您可以创建一个
JsonConverter序列化/反序列化的自定义
Role[]。然后,您可以像这样装饰您的
Roles媒体资源
JsonConverterAttribute:
public class User{ public string Name { get; set; } [JsonConverter(typeof(RolesConverter))] public Role[] Roles { get; set; }}在转换器类中,您可以读取一个对象并返回一个数组。您的转换器类可能如下所示:
class RolesConverter : JsonConverter{ public override bool CanConvert(Type objectType) { return objectType == typeof(Role[]); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { // deserialize as object var roles = serializer.Deserialize<JObject>(reader); var result = new List<Role>(); // create an array out of the properties foreach (JProperty property in roles.Properties()) { var role = property.Value.ToObject<Role>(); role.Id = int.Parse(property.Name); result.Add(role); } return result.ToArray(); } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { throw new NotImplementedException(); }}


