Saya sering kali perlu memperluas model Domain saya dengan info tambahan sebelum mengembalikannya ke klien dengan WebAPI. Untuk menghindari pembuatan ViewModel, saya pikir saya bisa mengembalikan JObject dengan properti tambahan. Namun saya tidak dapat menemukan cara langsung untuk mengonversi objek jenis apa pun ke JObject dengan panggilan tunggal ke perpustakaan Newtonsoft JSON. Saya menemukan sesuatu seperti ini:
- SerializeObject pertama
- lalu Parse
- dan memperpanjang JObject
Misalnya.:
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;
Saya ini cara yang benar?
JObject.FromObject(your_domain_object)adalah apa yang Anda cari. Lihat jawaban @ LB.