managing property names returned in json from web api
Solution 1
The easy way to do this is through a data contract. Here is an article, but basically, it involves two annotations on your model. It also allows you to ignore anything you don't want serialized.
[DataContract]
public class Foo { //Your model class
[DataMember(Name="bar-none")] //This also allows you to use chars like '-'
public string bar {get; set;}
[IgnoreDataMember] //Don't serialize this one
public List<string> fuzz { get; set;}
}
Solution 2
You could also consider using http://automapper.org/ on the asp.net side to map your full objects, to more lightweight ones. Might be overkill for just one or two small objects, but if you have a bunch to do this can save you some time (free and open source to boot).
amateur
Updated on June 13, 2022Comments
-
amateur almost 2 years
I am currently working with ASP.NET web api where I return a Model object like following from my REST operation:
Product with properties:
Name, Id, Description, etc.....
When this is converted to a
JSON
object, it outputs it with property names above.To cut down the payload returned from the web api operation, is there any way I can change the properties in the JSON object like for example
Desc
forDescription
. I could change the Model object but the property names would not make sense then! -
ThisGuyKnowsCode almost 11 yearsThis was perfect for my purposes, which were the same as OP's.
-
geon over 10 yearsYou might also need to add a reference to System.Runtime.Serialization which isn't added by default. stackoverflow.com/questions/7401795/namespace-for-datacontract