Felizmente, uso a biblioteca JSON da Newtonsoft . Por exemplo, eu criaria a JObject
partir de um objeto .NET, neste caso, uma instância de Exception (pode ou não ser uma subclasse)
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
agora eu sei que a biblioteca pode desserializar o texto JSON (ou seja, uma string) para um objeto
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
mas o que estou procurando é:
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
Bem, está claro que eu posso JObject
voltar ao texto JSON e usar a funcionalidade desserializar, mas isso me parece inverso.
T
, era necessárioresult=(value is JObject) ? ((JObject)value).ToObject<T>() : (T)default(T);
convertê-lo com êxito (nota -value
é um objeto proveniente de um banco de dados que pode ser um JObject ou qualquer outra coisa, caso em que o resultado deve ser nulo).jobject.ToObject(myObject.GetType())
se você não souber o tipo de objeto.A partir da documentação que encontrei
A definição de classe para
Person
deve ser compatível com o seguinte:Editar
Se você está usando uma versão recente do JSON.net e não precisa de serialização personalizada, consulte a resposta da TienDo acima (ou abaixo, se você me aprovou: P), o que é mais conciso.
fonte
Tarde demais, para o caso de alguém procurar outra maneira:
fonte