From 11d11a8c2875fb6ae8c98958bbb4d4dd84630954 Mon Sep 17 00:00:00 2001 From: ynqa Date: Wed, 27 Mar 2024 21:22:56 +0900 Subject: [PATCH] consider whether first char or not at Array --- src/jnv.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/jnv.rs b/src/jnv.rs index 19a4497..a5aacbf 100644 --- a/src/jnv.rs +++ b/src/jnv.rs @@ -56,7 +56,8 @@ impl Jnv { } else { segments .iter() - .map(|segment| match segment { + .enumerate() + .map(|(i, segment)| match segment { JsonPathSegment::Key(key) => { if key.contains('.') || key.contains('-') || key.contains('@') { format!(".\"{}\"", key) @@ -64,7 +65,13 @@ impl Jnv { format!(".{}", key) } } - JsonPathSegment::Index(index) => format!("[{}]", index), + JsonPathSegment::Index(index) => { + if i == 0 { + format!(".[{}]", index) + } else { + format!("[{}]", index) + } + } }) .collect::() }