我要序列化一个类,里面还有3个其他类。
我正在使用Newtonsoft.Json。
这是我的课程:
class File_Save_Data
{
public string file_Name { get; set; }
public DateTime file_Saved { get; set; }
public FileSettings f_setting { get; set; }
public DataSettings d_setting { get; set; }
public OtherSettings o_setting { get; set; }
}
这是我对其进行序列化的方式:
var file_data_class = new File_Save_Data()
{
file_Name = "test",
file_Saved = DateTime.Now,
f_setting = globals_f_settings,
d_setting = globals_d_settings,
o_setting = globals_o_settings
};
string output_json =
JsonConvert.SerializeObject(file_data_class, Formatting.Indented);
System.IO.File.WriteAllText(saveFileDialog1.FileName, output_json);
输出:
{
"file_Name": "test",
"preset_Saved": "2019-05-11T03:46:57.6685494+04:30",
"f_setting": "NetWrapper_DialliX.FileSettings",
"d_setting": "NetWrapper_DialliX.DataSettings",
"o_setting": "NetWrapper_DialliX.OtherSettings"
}
如何使Newtonsoft.Json也序列化子类?
有可能吗?
更新
我试图只序列化FileSettings
类,而我得到的正是这个:
“ NetWrapper_DialliX.FileSettings”
然后我尝试了XmlSerializer
,它一切正常,可以在File_Save_Data
上使用,也可以在f_setting
上使用...
信息::我使用了DisplayName和Description +一些自定义的Editor属性。
以前从未遇到过此问题,我还尝试了3个不同版本的JSON.NET,但结果相同:(
更新2:
我在其他项目中创建了相同的代码,只是区别在于控制台和Json Converter可以工作!所有类型转换器和其他属性都相同!
这是一个错误吗?还是我的主项目中有东西会破坏json?