我有像下面的json字符串
[
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 0
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 1
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 2
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 3
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 4
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 5
},
{
"topic": "inputTopic",
"key": "0",
"message": "test",
"partition": 0,
"offset": 6
},
{
"topic": "inputTopic",
"key": "0",
"message": "Hi Test",
"partition": 0,
"offset": 7
},
{
"topic": "inputTopic",
"key": "0",
"message": "Hi Test",
"partition": 0,
"offset": 8
},
{
"topic": "inputTopic",
"key": "0",
"message": "Hi Test",
"partition": 0,
"offset": 9
}
]
如何使用jsonpath表达式获取最后一项?
{
"topic": "inputTopic",
"key": "0",
"message": "Hi Test",
"partition": 0,
"offset": 9
}
答案 0 :(得分:10)
正如你可以在docs中读到的那样,你可以做一个
$..book[-1:]
如上面Duncan所提到的那样。或者你可以
{{1}}
就个人而言,我发现第一个更有表现力,后者更聪明一点。后者似乎也是预期的默认值。我想这是一个个人风格的问题。
答案 1 :(得分:5)
使用JsonPath时可以使用基础语言功能,因此在JavaScript中,长度属性可用。因此,你可以通过要求长度减一来说我想要最后一个。
假设您正在使用JavaScript中的JsonPath,以下查询将找到最后一项:
$.[(@.length-1)]
您可以在此在线JsonPath测试人员上查看此查询:http://www.jsonquerytool.com/sample/jsonpathlastinarray