从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) }
欢迎任何更好的解决方案。
- Kotlin与Java:使用lambda参数调用函数
- android java / kotlin recyclerview项目不可见
- Kotlin数据成员可以通过kotlin默认getter和setter在java中初始化吗?
- 在Kotlin中开发的Android库模块导出到Java应用程序导致失败的解决方案:Lkotlin / jvm / internal / Intrinsics
- 将继承的Java bean转换为Kotlin
- Odd TestObserver在订阅主题时的行为
- jackson自定义序列化程序或值对象?
- 更改kotlin扩展函数接收器的JVM名称
- jvm比较String和StringBuffer.reverse()总是失败