在返回给 WebAPI 的客户端之前,我经常需要用额外的信息扩展我的领域模型。为了避免创建 ViewModel,我想我可以返回带有附加属性的 JObject。然而,我无法找到将任何类型的对象转换为 JObject 的直接方法,只能通过调用 Newtonsoft JSON 库中的多个方法来完成此操作:
- 首先进行 SerializeObject
- 然后进行 Parse
- 最后扩展 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)
就是你要寻找的。请参考 @L.B 的回答。 - Brian Rogers