JSON.NETでシリアル化する次のオブジェクトがあります(特にこれではありませんが、同様の構造です)。
リクエストの基本クラス
public class Request { public string version = "1.0"; public RequestParams params; public Request(RequestParams params) { this.params = params; } }
基本的なペイロード クラス
public abstract class RequestParams { }
ペイロード クラス
public SampleRequest : RequestParams { public string someInfo = "param info"; }
使用法
new Request(new SampleRequest());
リクエストの構造を知っていれば、これで問題ありません。ただし、動的オブジェクトを「params」パラメーターとして定義する必要がある場合があります。つまり、次の形式で JSON を受け取るために、「params」オブジェクトをディクショナリとして (ただし [] なしで) 処理する必要があります。
{
"version":"1.0",
"params":{
"dynamic":"x",
...any number of dynamically added fields
"dynamic2":"y"
}
}
どうすればいいですか?