I'm using net core web api and need to return a payload with property name "$skip". I tried using the DataAnnotations:
public class ApiResponseMessage
{
[Display(Name ="$skip", ShortName = "$skip")]
public int Skip { get; set; }
[Display(Name = "$top", ShortName = "$top")]
public int Top { get; set; }
}
In my Controller I simply use
return Json(payload)
However, my response payload looks like follow:
"ResponseMsg": {
"Skip": 0,
"Top": 3
}
and I need it to be:
"ResponseMsg": {
"$skip": 0,
"$top": 3
}
What is the best option to address this? Do I need to write my own ContractResolver or Converter?
starting in .net core 3.0 the framework now uses System.Text.Json. You can decorate a json attribute in your class with
[JsonPropertyName("htmlid")]
public string HtmlId { get; set; }
See System.Text.Json
Use JsonProperty
attribute to set a custom property name:
[JsonProperty(PropertyName = "$skip")]
public int Skip { get; set; }
Output:
{ "$skip": 1 }
More info: How can I change property names when serializing with Json.net?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With