C#无效选项在.Net 6中使用system.text.json反序列化嵌套的动态对象时出错



我正在处理很多媒体文件,并将它们的属性转换为一个动态对象,以便在VS 2022、C#、.Net 6 Core和system.text.json中处理它们。大多数文件都有嵌套参数。由于每个音频/视频文件都有不同的类型和数量的参数,POCO在这里没有意义,这些动态对象已经在系统的这个部分和其他部分广泛使用。。。使得它们不可能被替换。

在处理了媒体文件并向对象添加了附加信息之后,我想用system.text.json将它们序列化为一个字符串。当我这样做的时候,我会收到一个错误,上面写着:

public static string ObjectToString(dynamic o)
{
return System.Text.Json.JsonSerializer.Deserialize<dynamic>(o);
// stupid typo... should be serialize here
}
System.Text.Json.JsonSerializer.Deserialize<object>(System.Text.Json.JsonDocument,
System.Text.Json.JsonSerializerOptions)' has some invalid arguments'

事实上,我已经尝试过序列化我刚刚序列化的同一个对象,但没有修改,结果得到了相同的错误。

在.Net Framework中,Newtonsoft在这方面没有遇到任何困难,但在Core中,如果可能的话,我希望摆脱它。那么,为了将动态对象反序列化为字符串,我需要做什么呢?

等等,你想从一个对象变成一个字符串吗?这是序列化,而不是反序列化。

此外,如果您读取了错误,那么您正在调用的方法需要两个参数,一个是正在序列化的对象(?(,另一个是定义如何进行序列化的JsonSerializerOptions实例。

最新更新