我正在尝试在运行时更改JSON文件的值。
我在JSON文件中有多个具有id和/或xpath的定位器,我计划在运行时(Java)期间通过xpath查找一个元素,然后更改值,然后再次搜索其xpath值已更改的元素:>
JSON文件:
“系列”:{ “ xpath”:“ // * [@ text ='SERIES']” }
“电影”:{ “ xpath”:“ // * [@ text ='MOVIE']” }, ...
然后在运行时中用Java代码通过此xpath查找元素MOVIE,然后将xpath更改为
“电影”:{ “ xpath”:“ // * [@ text ='蜘蛛人']” }
然后再次搜索MOVIE元素(其值已更改)。
挑战在于如何在运行时更改JSON文件中的值。
我找到了此解决方案:
https://docs.spring.io/spring/docs/3.0.x/reference/expressions.html#expressions-language-ref 6.5.18表达式模板
但是它会破坏我的代码,因为我们有一些使用#的值并引起混乱。
答案 0 :(得分:0)
找到解决方案:)我把它放在这里,以防万一有人有同样的问题:
与Spring Reference Expression相比,如果从Java角度来处理解决方案,则非常简单:
您需要像下面这样用Java解析定位器: 在json文件中,从以下位置更改定位器:
"MOVIE": { "xpath": "//*[@text='MOVIE']" }
收件人:
"MOVIE": { "xpath": "//*[@text='$NEWTITLE$']" }
在Java代码中解析定位器:
String xpathParam = locator.getXpathValue();
String xpath = String.format(xpathParam, "").replace("$NEWTITLE$", "Spider Man");