Freqüentemente, preciso estender meu modelo de domínio com informações adicionais antes de devolvê-lo ao cliente com WebAPI. Para evitar a criação de ViewModel, pensei que poderia retornar JObject com propriedades adicionais. No entanto, não consegui encontrar uma maneira direta de converter objetos de qualquer tipo em JObject com uma única chamada para a biblioteca JSON da Newtonsoft. Eu vim com algo assim:
- primeiro SerializeObject
- então Analise
- e estender JObject
Por exemplo.:
var cycles = cycleSource.AllCycles();
var settings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var vm = new JArray();
foreach (var cycle in cycles)
{
var cycleJson = JObject.Parse(JsonConvert.SerializeObject(cycle, settings));
// extend cycleJson ......
vm.Add(cycleJson);
}
return vm;
I esta maneira correta?
JObject.FromObject(your_domain_object)é o que você está procurando. Veja a resposta de @LB.