关于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获取数据;优雅的很!!!

浙公网安备 33010602011771号