C#自定义Json.NET列表序列化

C#自定义Json.NET列表序列化,c#,json,serialization,C#,Json,Serialization,我有一个DataObject类的列表: public class DataObject { public string Name { get; set; } public List<Field> Fields { get; set; } } } public class Field { public string Name { get; set;} public string Type { get; set;

我有一个DataObject类的列表:

public class DataObject
    {
        public string Name { get; set; }

        public List<Field> Fields { get; set; }
    }
}



public class Field
{

    public string Name { get; set;}
    public string Type { get; set; }
    public Object Value { get; set; }

    public Field(string name, string type, string value)
    {
        Name = name;
        Type = type;
        if(type == "string") Value = (string)value;
        else Value = Int32.Parse(value);
    }
}

使用Newtonsoft.Json,序列化相当容易。我获取了您的代码并添加了以下行:

string json = JsonConvert.SerializeObject(objects, Newtonsoft.Json.Formatting.Indented);
它给了我以下输出:

[
  {
    "Name": "Car",
    "Fields": [
      {
        "Name": "Brand",
        "Type": "string",
        "Value": "Volvo"
      },
      {
        "Name": "Power",
        "Type": "int",
        "Value": 200
      }
    ]
  }
]

我明白了,但是如何使变量名(在我的例子中是“Brand”)成为变量值的标记(例如“Volvo”)以获得
“Brand”:“Volvo”
等。如果列表中有多个
数据对象,JSON应该是什么样子?
string json = JsonConvert.SerializeObject(objects, Newtonsoft.Json.Formatting.Indented);
[
  {
    "Name": "Car",
    "Fields": [
      {
        "Name": "Brand",
        "Type": "string",
        "Value": "Volvo"
      },
      {
        "Name": "Power",
        "Type": "int",
        "Value": 200
      }
    ]
  }
]