Something beautiful is on the way.

关于dynamic遇到json的问题

需求:
有个api请求,返回json内容,但是我不想要声明什么类的,太麻烦。于是有dynamic的事情了。
var response = await client.GetFromJsonAsync<dynamic>(apiUrl);
用的就是默认的System.Json.Text,所以没法直接读取的。
微软自带的库可用,但还和json.net比还是逊色很多。

解决方案:

1.System.Json.Text

默认自带库,对dynamic的支持,但是读取很不直观。

var data=JsonSerializer.Deserialize<dynamic>(response)
得到的是个ValueKind类型;
如果直接用result.data,会直接崩溃的。

2.Newtonsoft.Json.Linq

这个库才是真的好用,单就JObject就是无敌好用。

var data=JsonConvert.DeserializeObject<dynamic>(response);
得到的是JObject类型;这个类型就很神奇了,配上dynamic,直接可以data.name获取数据;优雅的很!!!

posted @ 2025-06-08 22:10  张朋举  阅读(28)  评论(0)    收藏  举报