Newtonsoft.json序列化失败,并将类转换为名称空间字符串

时间:2019-05-10 23:36:53

标签: c# json serialization json.net

我要序列化一个类,里面还有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?

0 个答案:

没有答案