簡體   English   中英

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

[英]C# Custom Json.NET List 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; }
    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);
    }
}

我想將由DataObject類組成的List序列化為.json文件。 我在下面使用Json.NET顯示的方式,我嘗試了幾個場景,但沒有找到如何做到這一點。

例:

Field field1 = new Field("Brand", "string", "Volvo);
Field field2 = new Field("Power", "int", 200);
List<Field> fields = new List<Field>{field1, field2};
DataObject car = new DataObject{
   Name = "Car",
   Fields = list
}
List<DataObjects> objects = new List<DataObjects>{car};

結果:

{
 "Car":{
   "Brand" : "Volvo",
   "Power" : 200
  }
}

使用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
      }
    ]
  }
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM