Input JSON :
[
{"Activity":"yes","SBNumber":"123"},
{"Activity":"yes","SB#":"123"}
]
JXPath Expressions:
//works : returns "123"
JXPathContext.newContext(input).getValue("//*/SBNumber")
//fails: throwing JXPathInvalidSyntaxException
JXPathContext.newContext(input).getValue("//*/SB#")
How do i escape # to retrieve value from SB# ?
Failed attempts include
JXPathContext.newContext(input).getValue("//*/SB\\#")
JXPathContext.newContext(input).getValue("//*/SB[#]")
JXPathContext.newContext(input).getValue("//*/SB*")
etc..
However, I am able to retrieve node from below
JXPathContext.newContext(input).getValue("//*/*[contains(.,'SB#')]")
But then it is reference to the parent node only :-(
Any possible solution / alternative will be helpful.. tx
Adding a context variable can help escaping like mentioned below-
JXPathContext context = JXPathContext.newContext(input);
context.getVariables().declareVariable("blabla", "SB#");
context.getValue("//*/$blabla");