输入JSON:
[
{"Activity":"yes","SBNumber":"123"},
{"Activity":"yes","SB#":"123"}
]
JXPath表达式:
//works : returns "123"
JXPathContext.newContext(input).getValue("//*/SBNumber")
//fails: throwing JXPathInvalidSyntaxException
JXPathContext.newContext(input).getValue("//*/SB#")
如何从#转义#以从SB#中检索值?
尝试失败包括
JXPathContext.newContext(input).getValue("//*/SB\\#")
JXPathContext.newContext(input).getValue("//*/SB[#]")
JXPathContext.newContext(input).getValue("//*/SB*")
等。
但是,我可以从下面检索节点
JXPathContext.newContext(input).getValue("//*/*[contains(.,'SB#')]")
但是它只引用父节点: - (
任何可能的解决方案/替代方案都会有所帮助.. tx
答案 0 :(得分:1)
添加上下文 变量可以帮助转义,如下所述 -
JXPathContext context = JXPathContext.newContext(input);
context.getVariables().declareVariable("blabla", "SB#");
context.getValue("//*/$blabla");