WebAPIを使用してクライアントに返す前に、ドメインモデルを追加情報で拡張する必要があることがよくあります。ViewModelの作成を回避するために、追加のプロパティを持つJObjectを返すことができると思いました。ただし、Newtonsoft JSONライブラリを1回呼び出すだけで、任意のタイプのオブジェクトを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の回答を参照してください。