you probably found the answer already but...
Unsure of of PostSharp default serialized, but this is simply accomplished with
json.net by adding an attribute to your custom object property.
So you can do something like this
[JsonProperty(PropertyName = "incompliant-name")]
public object IncompliantName;
Then the when serializing and deserializing it uses the PropertyName from the attribute.
You just use newtonsoft as the serializer rather than the default.
A less simple way but with finer control again with
json.net, would be to create a custom deserializer, it must inherit from JsonConverter
And then do what ever you want with the object replacing one char with another or what not
plenty of examples out there on custom converters