从JSONArray获取元素时请保留双引号

我正在使用JsonPath从JSON文件中检索一个值。 JSON文件看起来像这样:

[ { "username": "John", "password": { "passwordValue": "passwordjohn", "secret_key": "123" } }, { "username": "Nick", "password": { "passwordValue": "XXX", "secret_key": "ZZZ", "other_key": "YYY" } } ] 

我正在使用的JsonPath是从特定的用户检索password 。 例:

 fun getPassword() { val passwords: JSONArray = read(jsonFile, "\$.[?(@.name==\"John\")].password") } 

但是,我发现了两个障碍。 首先,我总是返回一个net.minidev.json.JSONArray ,并且追加[0]路径不起作用。

因此,我尝试从JSONArray获取唯一的元素,如下所示: credentials[0] 。 不幸的是,这将删除字段名称的双引号,导致如下所示:

 {passwordValue: passwordjohn, secret_key: 123} 

这是不可能的。

我正在寻找一种方法来解决这个问题:

 {"passwordValue": "passwordjohn", "secret_key": "123"} 

我最终做的是在将JSONArray转换为String之后从JSONArray的开头删除[]符号:

 private fun JSONArray.toCredentialString(): String { val credentialString = this.toString() return credentialString.substring(1, credentialString.length - 1) } 

欢迎任何更好的解决方案。