c#–使⽤Json.NET将任何类型的对象转换为JObject(实⽤、
赞)
原⽂出处:
我经常需要扩展我的域模型与额外的信息,然后返回到客户端与WebAPI。为了避免创建ViewModel我想我可以返回JObject的附加属性。我不能到直接的⽅式将任何类型的对象转换为JObject与单⼀调⽤到Newtonsoft JSON库。我想出了这样的事情:
>第⼀个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));
json转换对象
// extend cycleJson ......
vm.Add(cycleJson);
}
return vm;
我这个正确的⽅法?
JObject实现了IDictionary,所以你可以使⽤它。例如,
var cycleJson  = JObject.Parse(@"{""name"":""john""}");
//add surname
cycleJson["surname"] = "doe";
//add a complex object
cycleJson["complexObj"] = JObject.FromObject(new { id = 1, name = "test" });
所以最终的json会
{
"name": "john",
"surname": "doe",
"complexObj": {
"id": 1,
"name": "test"
}
}
您还可以使⽤动态关键字
dynamic cycleJson  = JObject.Parse(@"{""name"":""john""}"); cycleJson.surname = "doe";
cycleJsonplexObj = JObject.FromObject(new { id = 1, name = "test" });

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。