防止在json中序列化属性名称

时间:2016-01-07 22:25:24

标签: c# json entity-framework

我有两节课。 第一个是:

public int id { get; set; }
public List<AnotherClass> field1 { get; set; }

第二个是

public class AnotherClass
{
    [JsonIgnore]
    public int id { get; set; }
    public string subfieldValue { get; set; }
}

当我从这些类中创建对象并序列化它们时,我从它们获得JSON

{
    "id" : "1",
    "field1": [
         {
             "subfieldValue":"value1"
         },
         {
             "subfieldValue":"value2"
         }
     ]
 }

但我需要JSON以下怎么办呢?此外,我不能将List<string>用于field1类型,因为我想使用Entity Framework将此值保存到数据库

{
    "id" : "1",
    "field1": ["value1", "value2"]
}

1 个答案:

答案 0 :(得分:3)

public int id { get; set; }
[JsonIgnore]
public List<AnotherClass> field1s { get; set; }
public List<string> field1
{
    get{return field1s.Select(f=>f. subfieldValue).ToList();}
    set{}
}

此外,您可能应该维护常见的C#命名约定,例如Id而不是id,并通过属性更改json名称和json中的任何内容。