C# 如何反序列化动态Json对象?
我当前从api收到以下JSON响应:C# 如何反序列化动态Json对象?,c#,json,serialization,C#,Json,Serialization,我当前从api收到以下JSON响应: {"Lastname":["ERRLASTNAMEEMPTY"],"Firstname":["ERRFIRSTNAMEEMPTY"]} 请注意,上面的响应是动态的,即有时我可以有FirstName,有时LastName,有时两者都有。此响应基于数据验证 我的问题是-有没有办法使用JsonSerializer.deserialize反序列化此响应 我尝试过这样使用它,但它不起作用
{"Lastname":["ERRLASTNAMEEMPTY"],"Firstname":["ERRFIRSTNAMEEMPTY"]}
请注意,上面的响应是动态的,即有时我可以有FirstName,有时LastName,有时两者都有。此响应基于数据验证
我的问题是-有没有办法使用JsonSerializer.deserialize反序列化此响应
我尝试过这样使用它,但它不起作用:
var errorBody = JsonSerializer.Deserialize<dynamic>(body, serializerOptions);
var errorBody=JsonSerializer.Deserialize(body,serializerOptions);
JsonSerializer.反序列化(正文,序列化)
您可以使用JObject
处理动态JSON对象,如下所示:
var data=JObject.Parse(body);
以后,您可以使用
数据[“Lastname”]?.Value()访问值代码>等等,你想要的方式。但它不是完全动态的,对吗?有时您有Lastname
,有时您有Firstname
,您只需要其中一个或两个,对吗?另外,System.Text.Json
目前不支持对动态对象进行反序列化,请参阅。