我有以下 JSON 字符串作为我的问题的示例:
也就是说,我有一个叫做“User”的类,其中的代码如下...
"...还有一个名为UserGroup的类,对于这个例子,只有这几行代码:"
现在,我想要的是,上面显示的JSON字符串将被反序列化为一个User实例,并且 "Groups"数组中的所有字符串都应该被反序列化为一个
我不会正常地反序列化,而是创建一个User实例并使用这段代码填充它...
“…但如果我使用上述显示的JSON字符串运行代码,我只会得到以下异常:”
我的最终要求是,如果我序列化
{
"Code": "Admin",
"Groups":
[
"Administrator",
"Superuser",
"User"
]
}
也就是说,我有一个叫做“User”的类,其中的代码如下...
[JsonObject(MemberSerialization.OptIn)]
public class User
{
public User (string code)
{
this.Code = code;
}
[JsonProperty]
public string Code { get; set; }
[JsonProperty("Groups")]
private List<UserGroup> groups;
public List<UserGroup> Groups
{
if (groups == null)
groups = new List<UserGroup>();
return groups;
}
}
"...还有一个名为UserGroup的类,对于这个例子,只有这几行代码:"
public class UserGroup
{
public UserGroup (string code)
{
this.Code = code;
// Some code to fill all the other properties, just by knowing the code.
}
public string Code { get; set; }
// More properties
}
现在,我想要的是,上面显示的JSON字符串将被反序列化为一个User实例,并且 "Groups"数组中的所有字符串都应该被反序列化为一个
List<UserGroup>
,其中包含每个字符串的实例。同样 - 另一个方向 - 应该将一个User序列化为仅包含所包含的UserGroups的Code属性的JSON字符串。我不会正常地反序列化,而是创建一个User实例并使用这段代码填充它...
Newtonsoft.Json.JsonConvert.PopulateObject(jsonString, myUserInstance);
“…但如果我使用上述显示的JSON字符串运行代码,我只会得到以下异常:”
Newtonsoft.Json.JsonSerializationException: 'Error converting value "Administrator" to type 'UserGroup'.
我的最终要求是,如果我序列化
User
,我希望UserGroup
被序列化为一个字符串数组。当我将UserGroup
作为根对象单独序列化时,它应该正常序列化(包括所有属性)。 (为了比较,在Json.Net: Serialize/Deserialize property as a value, not as an object中,该对象在所有情况下都被序列化为字符串。)