在使用WebAPI将域模型返回给客户端之前,我经常需要使用附加信息扩展域模型。为了避免创建ViewModel,我想我可以返回带有附加属性的JObject。然而,我无法找到直接的方法,通过调用Newtonsoft JSON库将任何类型的对象转换为JObject。我想出了类似以下的方法:
1.第一个序列化对象
1.然后分析
1.并扩展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;
我这条路对吗?
4条答案
按热度按时间rxztt3cl1#
JObject实现了IDictionary,所以你可以这样使用它。例如,
所以最后一个json是
您还可以使用
dynamic
关键字63lcw9qa2#
如果您有一个对象并希望成为JObject,可以使用:
像这样:
8e2ybdfx3#
这将工作:
ovfsdjhp4#
文件here