如何在运行时更改JSON文件中的值?

时间:2019-04-19 22:15:59

标签: java json

我正在尝试在运行时更改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表达式模板

但是它会破坏我的代码,因为我们有一些使用#的值并引起混乱。

1 个答案:

答案 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");