The TypeAttribute proposed by @asbjornu (see #6) could also be used with properties to declare literal type:
[Type("xsd:date")]
public DateTime BirthDate { get; set; }
would serialize as smth like
"birthDate": {
"@value": "2016-10-10",
"@type": "xsd:date"
}