是否可以序列化类似于属性的类名

时间:2019-06-04 18:40:33

标签: asp.net-core asp.net-core-2.0 asp.net-core-webapi asp.net-core-webapi-2.1

我知道我可以使用类似于下面的代码在序列化属性名称时将属性名称从Name更改为name,但是我也想在序列化对象名称并使用return Ok(myobj)之类的返回值时更改对象名称。

但是,是否可以对下面的类进行类似的操作,以便将其序列化为person而不是Person。我看过JsonObject,但看不到任何东西。

[JsonObject(PropertyName="person")]
public class Person
{
    [JsonProperty(PropertyName = "name")]
    public String Name { get; set; }

}

2 个答案:

答案 0 :(得分:1)

如果只希望您的班级名称以小写字母开头,则可以执行以下操作:

CamelCaseNamingStategy

由于使用from rijndael.cipher.crypt import new from rijndael.cipher.blockcipher import MODE_CBC import base64 PADDING = b'\x00' def pad(payload, block_size=32): return payload + (block_size - len(payload) % block_size) * PADDING def un_pad(payload): return payload.replace(PADDING, '') KEY = 'lkirwf897+22#bbtrm8814z5qq=498j5' IV = '741952hheeyy66#cs!9hjv887mxx7@8y' plain_text = "A padded string to BLOCKSIZE length." rjn = new(KEY, MODE_CBC, IV, blocksize=32) encd = rjn.encrypt(pad(plain_text)) data = base64.b64encode(encd) print(data) rjn = new(KEY, MODE_CBC, IV, blocksize=32) data = base64.b64decode(data) decd = rjn.decrypt(un_pad(data)) print (decd) ,这会将您的类名的首字母设置为小写,您还可以创建自己的自定义命名策略来满足您的需要,可以在此处找到现有命名策略的实现:({ {3}})

答案 1 :(得分:0)

您将需要另一个包装对象以具有类似的内容。您可以使用:

return Ok(new{
  Person = myobj
});