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

使用json-everything库时JSONPath length()函数无法返回数组长度

解决JSONPath length()函数获取数组长度的问题

问题分析

你测试的两条JSONPath存在两个关键错误:

  • 路径匹配错误:测试JSON中的数组字段是array,但你写的是foo,无法定位到目标数组;
  • 语法不符合规范:$[length(@.foo)]和$.foo.length()的写法不满足json-everything支持的JSONPath语法要求。

正确的JSONPath写法

针对你的测试JSON:

{
   "array": [1,2,3]
}

获取数组长度的正确JSONPath有两种写法:

$.array.length()

或者:

length($.array)

将上述路径输入json-everything的测试页面即可得到正确结果3。

关于json-everything库的注意事项

json-everything从0.30版本开始支持length()函数,需确保使用的是该版本及以上,且遵循JSONPath 2023规范的函数调用语法。

Newtonsoft.Json的替代方案

由于Newtonsoft.Json不支持JSONPath聚合函数,若无法切换库,可通过代码逻辑直接获取数组长度:

JObject jsonObj = JObject.Parse(yourJsonString);
int arrayLength = jsonObj["array"].Count();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:18:12