Click here to Skip to main content
12,953,666 members (51,724 online)
Rate this:
Please Sign up or sign in to vote.
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<t>() 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 4:36am
Updated 28-Sep-12 8:31am
BillWoodruff 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.
Rate this: bad
Please Sign up or sign in to vote.

Solution 1

How is this for an answer: Clicky[^]
Rate this: bad
Please Sign up or sign in to vote.

Solution 2

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
Top Experts
Last 24hrsThis month
OriginalGriff 6,429
CHill60 3,490
Maciej Los 3,103
ppolymorphe 2,020
Jochen Arndt 1,975

Advertise | Privacy | Mobile
Web02 | 2.8.170525.1 | Last Updated 29 Sep 2012
Copyright © CodeProject, 1999-2017
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