Click here to Skip to main content
11,496,146 members (449 online)
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
See more: C# JSON serialization
Hi everybody,

I am trying to deserialize a json string which I have serialized before with the
Newtonsoft Json library.
using (StreamReader sr = new StreamReader(s))
   json = sr.ReadToEnd();
object o = JsonConvert.DeserializeObject(json);
return o;
After the deserialisation the var o contains a JObject, but I want the source
object which I have serialized. How can I get the real object back.
I know there is a JsonConvert.DeserializeObject() function, but I do not know what type of object it is, because I am serializing a lot of different objects.
When I serialize my objects I store the type of the object in the json string,
so how can I tell the serializer to use the stored type for deserializing.

Thanks in advance
Posted 28-Sep-12 5:36am
Edited 28-Sep-12 9:31am
BillWoodruff at 28-Sep-12 20:00pm
I am sure Marcus' solution will answer your question, but, if you are struggling with NewtonSoft Json, may I recommend you take a look at Mehdi Gholam's fantastic json facility here on CP: ... includes detailed performance comparisons of his work, fastJson, and NewtonSoft's Json. His facility is much faster, and offers more options to deserialize complex .NET objects.
How is this for an answer: Clicky[^]
JsonSerializerSettings set = new JsonSerializerSettings();
set.TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;
set.TypeNameHandling = TypeNameHandling.All;
set.Formatting = Newtonsoft.Json.Formatting.None;

When using this settings for serializing and deserializing
it works, now i get the real object and not a JObject.

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

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 10,401
1 OriginalGriff 8,910
2 Sascha Lefèvre 3,899
3 Maciej Los 3,422
4 Richard Deeming 2,600

Advertise | Privacy | Mobile
Web03 | 2.8.150520.1 | Last Updated 29 Sep 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100