Click here to Skip to main content
13,552,924 members
Click here to Skip to main content
Add your own
alternative version


1 bookmarked
Posted 24 Oct 2010
Licenced CPOL

Work-Around for DataContractJsonSerializer ArgumentNullExceptions

, 24 Oct 2010
Rate this:
Please Sign up or sign in to vote.
Stop trailling nulls from preventing deserialization.
If you've tried using a DataContractJsonSerializer or a DataContractSerializer with Push Notification for the Windows Phone, you may have experienced an ArgumentNullException during deserialization. This can happen because the MemoryStream is buffered with null characters '\0' that prevent deserialization. A solution is to create a new array and copy all bytes except for the trailing nulls, as shown in the following excerpt:

using (BinaryReader reader = new BinaryReader(bodyStream))
	byte[] bodyBytes = reader.ReadBytes((int)bodyStream.Length);

	int lengthWithoutNulls = bodyBytes.Length;
	for (int i = bodyBytes.Length - 1; i >= 0 && bodyBytes[i] == '\0'; 
			i--, lengthWithoutNulls--)
		/* Intentionally left blank. */
	byte[] cleanedBytes = new byte[lengthWithoutNulls];
	Array.Copy(bodyBytes, cleanedBytes, lengthWithoutNulls);
	DataContractJsonSerializer serializer
		= new DataContractJsonSerializer(typeof(StockQuote));
	using (MemoryStream stream = new MemoryStream(cleanedBytes))
		StockQuote = (StockQuote)serializer.ReadObject(stream);

This excerpt is from the downloadable sample code in my upcoming book Windows Phone 7 Unleashed.

Have a great day!


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Daniel Vaughan
President Outcoder
Switzerland Switzerland
Daniel Vaughan is a eight-time Microsoft MVP and co-founder of Outcoder, a Swiss software and consulting company dedicated to creating best-of-breed user experiences and leading-edge back-end solutions, using the Microsoft stack of technologies--in particular Xamarin, WPF, and the UWP.

Daniel is the author of Windows Phone 8 Unleashed and Windows Phone 7.5 Unleashed, both published by SAMS.

Daniel is the developer behind several acclaimed mobile apps including Surfy Browser for Android and Windows Phone. Daniel is the creator of a number of popular open-source projects, most notably Codon.

Would you like Daniel to bring value to your organisation? Please contact

Blog | MVP profile | Twitter

Xamarin Experts
Windows 10 Experts

You may also be interested in...

Comments and Discussions

GeneralHello, i have studied your project regarding wp7 whic... Pin
Mohsin Malek16-Apr-11 0:20
memberMohsin Malek16-Apr-11 0:20 
GeneralRe: Hi Mohsin, Yes, the Netflix Browser for Windows Phone 7 - P... Pin
Daniel Vaughan16-Apr-11 8:37
memberDaniel Vaughan16-Apr-11 8:37 
GeneralOk sure. Thanks for the comment. If you post your code, I'll... Pin
Daniel Vaughan28-Oct-10 9:12
memberDaniel Vaughan28-Oct-10 9:12 
GeneralOk sure. Thanks for the comment. If you post your code, I'll... Pin
Katka Vaughan28-Oct-10 9:09
memberKatka Vaughan28-Oct-10 9:09 
GeneralReason for my vote of 2 Well this solves the problem but you... Pin
h3228-Oct-10 2:29
memberh3228-Oct-10 2:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.180515.1 | Last Updated 24 Oct 2010
Article Copyright 2010 by Daniel Vaughan
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid