是否可以使用json.net从json反序列化返回动态对象?我想做这样的事情:
dynamic jsonResponse = JsonConvert.Deserialize(json);
Console.WriteLine(jsonResponse.message);
Run Code Online (Sandbox Code Playgroud) 因此,为了在运行时查看当前对象的状态,我非常喜欢Visual Studio立即窗口给出的内容.只是做一个简单的
? objectname
Run Code Online (Sandbox Code Playgroud)
将给我一个格式良好的"转储"对象.
有没有一种简单的方法在代码中执行此操作,因此我可以在记录时执行类似的操作?
从 API 调用的结果来看,我有大量的 JSON 需要处理。
我目前有这个
Object convertObj = JsonConvert.DeserializeObject(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
我知道我可以做类似的事情
Movie m = JsonConvert.DeserializeObject<Movie>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它
m.FieldName
m.AnotherField
//etc
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想做类似的事情
var itemName = convertObj["Name"];
Run Code Online (Sandbox Code Playgroud)
获取列表中第一项的第一个 Name 值。
这是可能的,还是我必须创建一个类来反序列化?
我不想创建类的原因是我不是 API 的所有者,并且字段结构可能会改变。
编辑。
好的,所以我创建了这个类,因为它似乎是最好的方法,但是有没有办法将 JSON 反序列化为列表?
var sessionScans = new List<SessionScan>();
sessionScans = JsonConvert.DeserializeObject<SessionScan>(responseFromServer);
Run Code Online (Sandbox Code Playgroud)
抱怨它无法将 SessionScan 转换为通用列表。