gpt4 book ai didi

c# - 反序列化字符串不转换数组

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:26 25 4
gpt4 key购买 nike

我试图将这个字符串反序列化为一个对象,但每次转换时,角色属性都不会转换回来。

{"LoginAttemptId":235,"UserProfileId":4,"Username":"devclient1","Id":null,"SubscriptionType":null,"Roles":["Client"]}

我已经尝试了这两种反序列化方法:

PauperToPresidentSerializedModel serializeModel = 
JsonConvert.DeserializeObject<PauperToPresidentSerializedModel>(decUserData);

//PauperToPresidentSerializedModel serializeModel
// = serializer.Deserialize<PauperToPresidentSerializedModel>(decUserData);

并且都给我和反对 Roles 属性为 Null 的地方,而不是在其中包含“Client”。

这是 PauperToPresidentSerializedModel 对象定义

public class PauperToPresidentSerializedModel
{
public long LoginAttemptId { get; set; }

public long UserProfileId { get; set; }
public string Username { get; set; }

public string Id { get; set; }

public string SubscriptionType { get; set; }
public string[] Roles { get; private set; }
public PauperToPresidentSerializedModel(PauperToPresidentPrincipal principal)
{
LoginAttemptId = principal.LoginAttemptId;
UserProfileId = principal.UserProfileId;
Username = principal.Username;
Id = principal.Id;
SubscriptionType = principal.SubscriptionType;
Roles = principal.Roles;
}
public PauperToPresidentSerializedModel()
{
}
}

最佳答案

您的 Roles 字段有一个 private setter。你可以:

  1. 公开

  2. 让契约(Contract)解析器访问私有(private)字段:

    contractResolver.DefaultMembersSearchFlags |= BindingFlags.NonPublic;

  3. 创建自定义契约(Contract)解析器(我猜您不想走那条路)。

关于c# - 反序列化字符串不转换数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30009096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com