Ich muss mein Domain-Modell häufig um zusätzliche Informationen erweitern, bevor ich es mit WebAPI an den Client zurückgeben kann. Um die Erstellung von ViewModel zu vermeiden, dachte ich, ich könnte JObject mit zusätzlichen Eigenschaften zurückgeben. Ich konnte jedoch keinen direkten Weg finden, um Objekte jeglicher Art mit einem einzigen Aufruf der Newtonsoft JSON-Bibliothek in JObject zu konvertieren. Ich habe mir so etwas ausgedacht:
- erstes SerializeObject
- dann analysieren
- und erweitern Sie JObject
Z.B.:
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;
Ich das richtig?
JObject.FromObject(your_domain_object)ist was Sie suchen. Siehe die Antwort von @ LB.