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

如何使用JObject.SelectToken解析以@开头的JSON属性?

如何使用JObject.SelectToken()获取@id的值?

针对你提供的JSON结构,要获取@id的值,需要注意JSONPath语法中@是特殊字符(代表当前节点),直接写Test.@id会被解析错误。正确的写法是用单引号或双引号包裹带特殊字符的属性名:

可行的代码示例

string json = @"
{
     ""Test"": {
          ""@id"": ""abcdef""
     }
}";

JObject jobject = JObject.Parse(json);

// 方式1:用单引号包裹属性名
string id1 = jobject.SelectToken("Test['@id']").Value<string>();

// 方式2:用转义的双引号包裹属性名
string id2 = jobject.SelectToken("Test.\"@id\"").Value<string>();

为什么之前的尝试失败?

  • Test.@id:JSONPath会把@解析为当前节点,而非属性名的一部分,导致找不到目标属性
  • Test.\@id/[Test].[\@id]:JSONPath中不需要用反斜杠转义@,这种写法不符合语法规范
  • [Test].[@id]:错误地将@id解析为当前节点的id属性,而非名为@id的属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:25:34