私は MVC4 コントローラーを使用して、サーバー上で、Kendo UI データソースで使用するフィルター条件の宣言を (とりわけ) 含む .json ファイルを読み取ります。
それをオブジェクトにロードし、JsonResult を介してクライアントに送信したいと思います。
これは、送信したい json 部分です。
{
activate: {
logic: "or",
filters: [
{ field: "fieldA", operator: "eq", value: 100 },
{
logic: "and",
filters: [
{ field: "fieldA", operator: "lt", value: 100 },
{ field: "fieldB", operator: "eq", value: true }
]
}
]
}
}
json データをマップするクラスを定義しました。
public class ItemModel
{
public Object activate { get; set; }
}
型として Object を使用していますが、そこに含まれる値が異なる可能性があるため、再帰構造ではないか、「演算子」として予約語が含まれています。
次に、json を読み取ります。
JsonSerializer serializer = new JsonSerializer();
ItemModel i = serializer.Deserialize<ItemModel>(new JsonTextReader(reader));
この時点で、"Object" を "activate" json オブジェクトの型として定義したため、変数に、そのベースとして "Newtonsoft.Json.Linq.JContainer" を参照するオブジェクトが見つかりました。 "Json(i)" に渡すと、クライアントでは "[[[]]、[[[[[]]、[[]]、[[]]]、[[[]]」のような結果になります。
「オブジェクト」オブジェクト (または Json() パーサーが問題を起こす同等のもの) のシリアル化の代わりに、実際の json データをクライアントに返すことは可能ですか? どのように?
ありがとうございました