在使用WebAPI将其返回给客户端之前,我经常需要使用其他信息来扩展我的Domain模型。为了避免创建ViewModel,我想我可以返回带有其他属性的JObject。但是,我找不到直接调用Newtonsoft JSON库即可将任何类型的对象转换为JObject的直接方法。我想到了这样的事情:
- 第一个SerializeObject
- 然后解析
- 并扩展JObject
例如。:
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;
我这是正确的方法吗?
JObject.FromObject(your_domain_object)是您要寻找的。请参阅@LB的答案。