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

JObject.SelectToken解析路径索引器报Unexpected character错误求助

问题原因

你使用的Newtonsoft.Json组件中,SelectToken方法对JSON路径语法有明确规则:

  • 方括号[]如果用于包裹字符串类型的JSON键名,必须为键名添加单引号,否则会被默认识别为数组的数字索引
  • 你写的路径[response][0][assignment][current][channelId]中,第一个[response]没有加单引号,解析路径时碰到首字符r不符合数字格式,直接抛出报错。
修复方案

有两种等价的正确写法可选:

写法1:点语法(更简洁,适合键名无特殊字符的场景)

JObject oR = JObject.Parse(response2.Content);                   
var channelIdToken = oR.SelectToken("response[0].assignment.current.channelId");
if (channelIdToken != null)
{
    ChannelId = channelIdToken.ToString();
}

写法2:带单引号的方括号语法(适合键名含特殊字符的场景)

JObject oR = JObject.Parse(response2.Content);                   
var channelIdToken = oR.SelectToken("['response'][0]['assignment']['current']['channelId']");
if (channelIdToken != null)
{
    ChannelId = channelIdToken.ToString();
}

优化说明:调整为单次调用SelectToken再复用结果,避免重复解析路径带来的不必要性能开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:57:04