我有两个看起来像这样的类:
public class Field
{
public string Name { get; set; }
public FieldType FieldType { get; set; }
}
public class FieldType
{
public Dictionary<string, object> Settings { get; set; }
public static readonly FieldType Text = new FieldType()
{
Settings = new Dictionary<string, object>() { { "setting 1", "" }, { "setting 2", "" } }
};
}
我想反序列化以下json:
{
"name": "First Name",
"fieldType": "Text"
}
因此,为FieldType属性正确分配了“文本”的静态FieldType。
我是否需要修改FieldType类?还是我需要一些自定义的JsonSerializerSettings?
当前,我收到错误消息:将值“ Text”转换为“ FieldType”类型时出错。路径'fieldType
最佳答案
json的显示方式涉及fieldType
是字符串类型的实例,因此,如果您将要反序列化的类更改为类似的东西,例如:
public class Field
{
public string Name { get; set; }
public string FieldType { get; set; }
}
反序列化将起作用。
我是否需要修改FieldType类?
不,您不需要修改您的
FieldType
类,可以保持原样,反序列化为Field
,然后使用字段类中的值可以填充FieldType
类或执行任何操作想。您不能反序列化为静态属性,因为您可以参阅this question以获得更多详细信息。如果需要将数据存储在静态字段中并将其接收到静态字段中,则不应尝试使用序列化。