Reputation: 4299
Is it possible to replace the default JSON serialization of WCF (I'm currently testing with the webHttp
behaviour), and passing application/json
as the MIME type. In particular, I don't like that by default every property is a key/value pair like:
{"Key":"PropertyName", "Value":"PropertyValue"}
I'm using the service only for JSON-enabled endpoints (requesting data with jQuery + WCF).
Upvotes: 12
Views: 14888
Reputation: 87218
You can use a message formatter to change the serializer used to deal with JSON. The post at https://learn.microsoft.com/en-us/archive/blogs/carlosfigueira/wcf-extensibility-message-formatters shows an example on how to change the default serializer (DataContractJsonSerializer) to another one (JSON.NET).
Upvotes: 13
Reputation: 647
Consider creating classes corresponding to your JSON object structure. In that case you don't have to use Dictionary<>
like:
[DataContract]
public class Customer
{
[DataMember(Name="name")]
public string Name{get;set;}
[DataMember(Name="id")]
public int ID{get;set;}
}
This get serialized as:
{"name": "name-value", "id": "id-value"}
Of course, this is just an alternative to what you already have and may not be applicable.
Upvotes: -1