使用NewtonSoft提取JSON中session-token字段返回空的问题排查
问题原因及解决方法
问题根源
session-token字段并非位于JSON的根层级,而是嵌套在data子对象中。你直接从根JObject调用Value<string>("session-token"),相当于在根节点查找该字段,自然找不到对应值,返回null。
正确的获取方式
以下几种方法都可以正确获取session-token的值:
- 分步获取子节点再取值:
var dataNode = jtoken["data"]; var token = dataNode.Value<string>("session-token");
- 链式访问嵌套节点:
var token = jtoken["data"]["session-token"].Value<string>();
- 使用
SelectToken通过路径定位:
var token = jtoken.SelectToken("data.session-token").Value<string>();
可选:空引用安全写法
如果担心data节点可能不存在导致空引用异常,可以结合空条件操作符:
var token = jtoken["data"]?.Value<string>("session-token");
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

