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

使用JToken.Value()方法提示缺少key形参报错该如何修复?

错误原因

Newtonsoft.Json 中JToken的Value方法为泛型方法,必须显式指定要转换的目标类型作为泛型参数,无参调用不符合方法签名要求,因此触发缺少必填参数的报错。

修复方案

你的方法返回值为string类型,直接修改报错行,调用泛型版本并指定目标类型为string即可:

return returnValue.Value<string>();

如果不需要强类型校验,仅需要获取值的字符串表示,也可以直接调用ToString方法:

return returnValue.ToString();

可选优化

为了避免JSON结构不符合预期时触发空引用异常,可以补充对JSON层级的判空逻辑,修改后完整代码如下:

private string GetValue(string symbol, string field)
{
    string json = HttpGet(symbol, field);
    dynamic obj = JsonConvert.DeserializeObject(json);
    // 前置判空避免结构异常时报错
    if (obj?.query?.results?.quote == null)
    {
        return "返回数据结构异常";
    }
    var quote = obj.query.results.quote;

    JToken returnValue = null;
    quote.TryGetValue(field, out returnValue);
    if (returnValue != null)
        return returnValue.Value<string>();

    return field + " is not a valid field name.";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:06:04