我如何反序列化和序列化牛顿json中的复杂json数据?

企鹅

我做了一个jquery过滤器工具,它以json的形式返回到我的服务器端过滤器数据。我想将其转换为C#类,并且也想将任何C#类转换为我的json。

我的json及其下面的镜像C#类:

[{"field":{"label":"Category","value":"category"},"operator":{"label":"any of","value":"in"},"value":{"label":"(Family, Friends)","value":"1,2"}},{"field":{"label":"Age","value":"age"},"operator":{"label":">","value":"gt"},"value":{"label":"18","value":"18"}},{"field":{"label":"Firstname","value":"firstname"},"operator":{"label":"equals","value":"eq"},"value":{"label":"\"test\"","value":"test"}},{"field":{"label":"Lastname","value":"lastname"},"operator":{"label":"equals","value":"eq"},"value":{"label":"\"test2\"","value":"test2"}}]

C#镜像:



public class Field
{
    public string label { get; set; }
    public string value { get; set; }
}

public class Operator
{
    public string label { get; set; }
    public string value { get; set; }
}

public class Value
{
    public string label { get; set; }
    public string value { get; set; }
}

public class RootObject
{
    public Field field { get; set; }
    public Operator @operator { get; set; }
    public Value value { get; set; }
}


我尝试过这种方式:

   public class ViewFilter
{
    public List<Field> Fields { get; set; }
    public List<Operator> Operators { get; set; }
    public List<Value> Values { get; set; }
    public List<RootObject> RootObjects { get; set; }
}
    public class Field
    {
        public string label { get; set; }
        public string value { get; set; }
    }

    public class Operator
    {
        public string label { get; set; }
        public string value { get; set; }
    }

    public class Value
    {
        public string label { get; set; }
        public string value { get; set; }
    }

    public class RootObject
    {
        public Field field { get; set; }
        public Operator @operator { get; set; }
        public Value value { get; set; }
    }

我试过了 :

 var result =  JsonConvert.DeserializeObject<List<ViewModel.ViewFilter>>(filter).ToList();


       foreach (ViewModel.ViewFilter item in result)
       {


       }
本杰明·苏里耶(Benjamin Soulier)

接收数据时,请使用NewtonSoft JsonConvert类:

var serializerSettings = new JsonSerializerSettings
    { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var fields = JsonConvert.DeserializeObject<List<RootObject>>(yourString, serializerSettings);

yourString值为您越来越其中包含您的JSON数据的字符串。

CamelCasePropertyNamesContractResolver发生在驼峰序列化对象的名称作为它的名称所表明的照顾。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中反序列化复杂的JSON数据

来自分类Dev

反序列化复杂的JSON

来自分类Dev

反序列化复杂的Json对象

来自分类Dev

反序列化复杂的JSON对象

来自分类Dev

反序列化复杂的 JSON

来自分类Dev

如何序列化和反序列化JSON文件到DataTable中以填充DataGridView?

来自分类Dev

如何在MVC中反序列化JSON数据

来自分类Dev

如何在MVC中反序列化JSON数据

来自分类Dev

json objcts的序列化和反序列化

来自分类Dev

如何反序列化复杂的嵌套JSON?

来自分类Dev

反序列化JSON数据

来自分类Dev

反序列化 JSON 数据

来自分类Dev

使用牛顿JSON从C#中的反序列化JSON投射错误

来自分类Dev

反序列化JSON

来自分类Dev

反序列化 JSON

来自分类Dev

如何反序列化oData JSON?

来自分类Dev

如何反序列化JSON

来自分类Dev

如何快速反序列化JSON

来自分类Dev

如何反序列化多维JSON

来自分类Dev

如何反序列化json?

来自分类Dev

如何反序列化Json对象?

来自分类Dev

如何反序列化 JSON 对象?

来自分类Dev

Swift中对象的自动JSON序列化和反序列化

来自分类Dev

在C#中反序列化和序列化JSON文件

来自分类Dev

使用 JSON 忽略序列化和反序列化中的参数名称

来自分类Dev

我如何反序列化此json?

来自分类Dev

如何使用C#反序列化JSON数据?

来自分类Dev

反序列化现实世界中的JSON数据

来自分类Dev

在Android中反序列化JSON数据