Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化字符串不转换数组_C#_Json.net_Javascriptserializer - Fatal编程技术网

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

C# 反序列化字符串不转换数组,c#,json.net,javascriptserializer,C#,Json.net,Javascriptserializer,我有一个字符串,我正试图反序列化为一个对象,但每次转换它时,Roles属性都不会转换回来 {“LoginAttentid”:235,“UserProfileId”:4,“Username”:“devClient 1”,“Id”:null,“SubscriptionType”:null,“Roles”:[“Client”]} 我已经尝试了这两种反序列化方法: PauperToPresidentSerializedModel serializeModel = Json

我有一个字符串,我正试图反序列化为一个对象,但每次转换它时,Roles属性都不会转换回来

{“LoginAttentid”:235,“UserProfileId”:4,“Username”:“devClient 1”,“Id”:null,“SubscriptionType”:null,“Roles”:[“Client”]}

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

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

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

您的
角色
字段有一个专用设置器。你可以:

  • 公开

  • 让合同解析程序访问专用字段:

    contractResolver.DefaultMembersSearchFlags |=BindingFlags.NonPublic

  • 创建一个定制的合同解析器(我猜你不想走这条路)


  • 为了序列化和反序列化,您需要将所有属性都公开:

    public string[] Roles { get; set; }
    

    缺少PAUPPERTOPResidentSerializedModel定义,请编辑您的问题您的角色设置器是私有的谢谢我完全错过了私有设置器
    public string[] Roles { get; set; }