我正在使用 MVC4 控制器在服务器上读取一个 .json 文件,该文件包含(除其他外)要在 Kendo UI 数据源上使用的过滤条件声明。
我想将它加载到一个对象中,并通过 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() 解析器遇到问题的等效对象)?如何?
谢谢