Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC4和剑道UI“;过滤器";:从对象类型返回JSON_C#_Json_Asp.net Mvc 4_Kendo Ui - Fatal编程技术网

C# ASP.NET MVC4和剑道UI“;过滤器";:从对象类型返回JSON

C# ASP.NET MVC4和剑道UI“;过滤器";:从对象类型返回JSON,c#,json,asp.net-mvc-4,kendo-ui,C#,Json,Asp.net Mvc 4,Kendo Ui,我使用MVC4控制器在服务器上读取一个.json文件,该文件包含(除其他内容外)要在KendoUIDataSource上使用的过滤条件声明 我想将它加载到一个对象中,然后通过JsonResult将它发送到客户机 这是我想发送的json部分: { activate: { logic: "or", filters: [ { field: "fieldA", operator: "eq", value: 100 },

我使用MVC4控制器在服务器上读取一个.json文件,该文件包含(除其他内容外)要在KendoUIDataSource上使用的过滤条件声明

我想将它加载到一个对象中,然后通过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; }
} 
作为一种类型,我使用对象,因为其中包含的值可能不同,所以它不是递归结构,或者包含保留字作为“运算符”

然后,我通过以下方式阅读json:

JsonSerializer serializer = new JsonSerializer();
ItemModel i = serializer.Deserialize<ItemModel>(new JsonTextReader(reader));
JsonSerializer serializer=新的JsonSerializer();
ItemModel i=serializer.Deserialize(新的JsonTextReader(reader));
此时,由于我将“Object”定义为“activate”json对象的类型,我在变量中找到了一个对象,该对象引用“Newtonsoft.json.Linq.JContainer”作为其基础,该对象传递给“json(I)”,在客户机上的结果类似于“[[[]]、[[[[]]、[[[[]]、[[[[]]、[[[]]、[[[[]]、[[[]]、[[]]

是否有可能将真实的json数据返回给客户端,而不是“Object”对象的序列化(或json()解析器遇到麻烦的等效对象)? 怎么做


谢谢

到目前为止,我发现最好的方法是对返回的对象使用“JsonConvert.SerializeObject”:

JsonSerializer serializer = new JsonSerializer();
ItemModel i = serializer.Deserialize<ItemModel>(new JsonTextReader(reader));
JsonConvert.SerializeObject(i, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
JsonSerializer serializer=新的JsonSerializer();
ItemModel i=serializer.Deserialize(新的JsonTextReader(reader));
SerializeObject(i,新的JsonSerializerSettings{NullValueHandling=NullValueHandling.Ignore});