Ho la seguente enumCome serializzare enumerazioni a diverso nome della proprietà utilizzando json.net
public enum PermissionType
{
[JsonProperty(PropertyName = "can_fly")]
PermissionToFly,
[JsonProperty(PropertyName = "can_swim")]
PermissionToSwim
};
e una classe con questa proprietà
[JsonProperty(PropertyName = "permissions", ItemConverterType = typeof(StringEnumConverter))]
public IList<PermissionType> PermissionKeynames { get; set; }`
voglio serializzare l'elenco delle enumerazioni ad un elenco di stringhe e tale elenco di serializzazione utilizza la stringa specificata in PropertyName
(come "can_swim") anziché il nome effettivo della proprietà "PermissionToSwim". Tuttavia, ogni volta che io chiamo JsonConvert.SerializeObject, io alla fine con
"permission_keynames":["PermissionToFly","PermissionToSwim"]
invece del mio desiderato
"permission_keynames":["can_fly","can_swim"]
voglio mantenere la frase "PermissionToSwim" per l'uso nel mio codice, serializzare ad un'altra parola . Qualche idea su come posso ottenere questo? Il mio istinto dice che l'annotazione è il colpevole, ma non sono stato in grado di trovare quello corretto.
Nel caso in cui qualcuno in futuro abbia il problema opposto (deserializzando un enum con valori con nomi diversi), controlla [questa domanda] (http://stackoverflow.com/questions/7799769/parsing-an-enumeration -in-json-net). – pghprogrammer4