Created attachment 2794 [details]
Sample project with Unit test (NUnit) to show the bug. You might need to adjust references for your system.
The property 'EmitDefaultValue' from DataMember property is not honored when set to false and exporting to JSON using DataContractJsonSerializer.
It was tested on Ubuntu 12.10 with the default Mono version (220.127.116.11), using 3.0 tarball and latest git from today (October 25, 2012) and they all have the bug. Just FYI, Microsoft .NET isn't affected by that bug and returns the expected result (and was used to generate the 'expectedJson' in the unit test in the attached project).
'IsRequired' property (from DataMember) might also not be honored.
Same on XML(I mean DataContractSerializer) at GitHub master, because both of them are simply lacking EmitDefaultValue handling on serialization. This issue is most likely a enhancement than a bug. I'm working on writing a patch for this issue.
Is this going to be fixed?
Dupe to Bug 15028?