jmespath / jmespath.js

Javascript implementation of JMESPath, a query language for JSON
http://jmespath.org
Other
783 stars 97 forks source link

Does jmespath support "substring" function #77

Open zacard-orc opened 3 years ago

zacard-orc commented 3 years ago

hello, i met a problem ,to use different char idx to switch the business. eg

"01234abc" : extract if ab => way to 1 "01234efg" : extract if ef => way to 2 "01234mno" : extract if mn=> way to 3

I browse the official doc and not found any method to support this.

Dose anybody met the same problem and how to resolve it ?

darrenmothersele commented 3 years ago

Hi, sorry - I don't understand your description of what you are trying to do. Can you give an example (or two) of expected input and expected output?

jarrodek commented 2 years ago

I have a similar issue. I would like to have a built-in function that performs a similar to String.prototype.substring() operation.

For given input:

{
  "foo": "bar"
}

I would like to run an expression like this:

// in JS the substring has a signature of substring(indexStart, indexEnd)
.search(..., 'foo | substring(0, 1)') // ba
.search(..., 'foo | substring(0, 2)') // bar
.search(..., 'foo | substring(0)') // bar
.search(..., 'foo | substring(1)') // ar

or by using slice expression

.search(..., 'foo[0:1]') // ba
.search(..., 'foo[0:2]') // bar
.search(..., 'foo[0]') // bar
.search(..., 'foo[1]') // ar
springcomp commented 2 years ago

@zacard-orc we are standardizing a host of string manipulation functions in JMESPath Community. Substrings will be achieved using the existing slice-expression syntax.

jpmckinney commented 1 year ago

JEP: https://github.com/jmespath/jmespath.jep/issues/5

springcomp commented 1 year ago

JEP: jmespath/jmespath.jep#5

Yep ! that’s exactly where I took this piece of feedback when brainstorming the list of features to include in the next version of JMESPath. Incidentally, @glenveegee has created an awesome port of JMESPath to TypeScript but this does not seem to be maintained any longer.

So, while preparing a version for JMESPath Community, I am proposing all my changes upstream anyway. I hope to find an official maintainer then.

glenveegee commented 1 year ago

@springcomp I'm updating it as we speak. Just been busy.