You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#读取嵌套JSON对象遇System.ArgumentNullException问题求助

问题分析与解决

错误原因

你碰到的System.ArgumentNullException是因为要读取的nationalId、surname、givenNames字段不在JSON根节点下,而是嵌套在return对象里。直接用person_jObject["nationalId"]访问会返回null,再调用Value<string>()自然触发了空引用异常。

修正后的代码

先获取嵌套的return子对象,再从中读取目标字段:

JObject person_jObject = JObject.Parse(content5);
// 先拿到return对应的子对象
JObject returnObj = person_jObject["return"].Value<JObject>();
person.nationalId = returnObj["nationalId"].Value<string>();
person.surname = returnObj["surname"].Value<string>();
person.givenNames = returnObj["givenNames"].Value<string>();

更安全的写法(防空处理)

如果担心return节点本身可能为空,可以加一层空值判断,避免再次抛出异常:

JObject person_jObject = JObject.Parse(content5);
if (person_jObject.TryGetValue("return", out JToken returnToken) && returnToken is JObject returnObj)
{
    person.nationalId = returnObj["nationalId"]?.Value<string>() ?? string.Empty;
    person.surname = returnObj["surname"]?.Value<string>() ?? string.Empty;
    person.givenNames = returnObj["givenNames"]?.Value<string>() ?? string.Empty;
}

内容的提问来源于stack exchange,提问作者Nelson Kibet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:10:50