扁平化属性序列化的属性

时间:2018-12-03 04:03:51

标签: c# json json.net

我正在使用C#和NewtonSoft JSON包。

可以说我有一个对象,该对象具有名为"MyProp"的属性,该对象本身是具有两个属性"PropA""PropB"的类。默认情况下,它的序列化方式如下:

{ "MyProp": { "PropA": 1 "PropB": 2 } }

我希望它像这样序列化:

{ "PropA": 1 "PropB": 2 }

有什么可以标记"MyProp"的东西来实现这一目标?或者,如果我必须编写自己的JsonConverter,是否有某种轻松的方法?

1 个答案:

答案 0 :(得分:1)

别以为可以用任何属性标记类。一种实现所需目标的方法是将序列化为匿名类型:

var json = JsonConvert.SerializeObject(new {PropA = myProp.PropA, PropB = myProp.PropB});

这将为您提供像这样的小型用例所需的内容,但对于较大的类将变得非常乏味。