从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) }
欢迎任何更好的解决方案。
- Java vs Kotlin – 同一个类中的Spring @Async方法
- 如何在Kotlin中解析JSON?
- 当应用程序处于非活动状态时,通知显示android图标,而不显示应用
- 将Kotlin添加到现有Java项目会打破Android Studio gradle消息错误
- Kotlin函数参数中的字符串变量自动转换为java.lang.String,为什么?
- Maven with Kotlin 1.2:一个需要的类缺少kotlin / reflect / KDeclarationContainer
- 异步调用集合中的每个项目
- 试图编写高效的代码来使用Kotlin更新背景颜色
- 最佳和节省时间的方式编码在android studio