如何用JSONPath获取数组除最后一个元素外的所有元素?
解决方案
针对你使用JsonPath.Net搭配System.Text.Json的场景,要获取数组除最后一个元素外的所有元素,可以使用切片语法:
$[:-1]
代码示例
以下是具体的C#代码实现,验证该表达式的效果:
using System; using System.Text.Json; using JsonPath.Net; class Program { static void Main() { string json = @"[1,2,3,4]"; JsonElement doc = JsonSerializer.Deserialize<JsonElement>(json); JsonPathExpression path = JsonPathExpression.Parse("$[:-1]"); EvaluationResult result = path.Evaluate(doc); foreach (var element in result.Matches) { Console.WriteLine(element.Value.ToString()); } // 输出结果:1、2、3 } }
语法说明
在JsonPath.Net的切片规则中:
- 省略切片起始位置的
:,代表从数组第一个元素开始选取 -1指向数组倒数第一个元素的索引,将其作为切片的结束边界时,会自动排除该索引对应的元素,因此$[:-1]会精准选取从第一个元素到倒数第二个元素的所有内容
内容的提问来源于stack exchange,提问作者Cliff Pennalligen
相关产品推荐
相关产品推荐

