DataContractJsonSerializer produces list of hashes instead of hash

Posted by Jacques on Stack Overflow See other posts from Stack Overflow or by Jacques
Published on 2010-03-26T19:59:47Z Indexed on 2010/03/26 20:03 UTC
Read the original article Hit count: 586

Filed under:
|
|
|

I would expect a Dictionary object of the form:

Dictionary<string,string> dict = new Dictionary<string,string>() {["blah", "bob"], ["blahagain", "bob"]};

to serialize into JSON in the form of:

{ "blah": "bob", "blahagain": "bob" }

NOT

[ { "key": "blah", "value": "bob" }, { "key": "blahagain", "value": "bob"}]

What is the reason for what appears to be a monstrosity of a generic attempt at serializing collections?

The DataContractJsonSerializer uses the ISerializable interface to produce this thing. It seems to me as though somebody has taken the XML output from ISerializable and mangled this thing out of it.

Is there a way to override the default serialization used by .Net here? Could I just derive from Dictionary and override the Serialization methods?

Posting to hear of any caveats or suggestions people might have.

© Stack Overflow or respective owner

Related posts about c#3.5

Related posts about .net-3.5