相关疑难解决方法(0)

使用Json.net将json对象反序列化为动态对象

是否可以使用json.net从json反序列化返回动态对象?我想做这样的事情:

dynamic jsonResponse = JsonConvert.Deserialize(json);
Console.WriteLine(jsonResponse.message);
Run Code Online (Sandbox Code Playgroud)

.net c# json.net

411
推荐指数
8
解决办法
34万
查看次数

将整个对象转储到C#中的日志的最佳方法是什么?

因此,为了在运行时查看当前对象的状态,我非常喜欢Visual Studio立即窗口给出的内容.只是做一个简单的

? objectname
Run Code Online (Sandbox Code Playgroud)

将给我一个格式良好的"转储"对象.

有没有一种简单的方法在代码中执行此操作,因此我可以在记录时执行类似的操作?

c# debugging logging object visual-studio

118
推荐指数
10
解决办法
11万
查看次数

在不创建类的情况下反序列化 JSON 响应

从 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 转换为通用列表。

c# json

4
推荐指数
3
解决办法
6902
查看次数

标签 统计

c# ×3

.net ×1

debugging ×1

json ×1

json.net ×1

logging ×1

object ×1

visual-studio ×1