Mantenga comillas dobles al get elementos de JSONArray

Estoy usando JsonPath para recuperar un valor de un file JSON. El file JSON se ve así:

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

El JsonPath que estoy usando es para recuperar la password de un usuario en particular. Ejemplo:

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

Sin embargo, encontré dos obstáculos. En primer lugar, obtengo un net.minidev.json.JSONArray siempre, y la misma ruta con el apéndice [0] no funciona.

Por lo tanto, trato de get el único elemento del JSONArray que recibo, así: cnetworkingentials[0] . Desafortunadamente, esto elimina las comillas dobles en los nombres de los campos, lo que da como resultado algo como esto:

 {passwordValue: passwordjohn, secret_key: 123} 

Con lo cual es imposible trabajar

Estoy buscando una forma de recuperar esto:

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

Lo que terminé haciendo fue eliminar los símbolos [ y ] del comienzo de JSONArray después de convertirlo en una String :

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

Cualquier mejor solución es bienvenida.

  • ¿Es posible comstackr el código de kotlin para ejecutar sin la lib de time de ejecución? ¿Cómo?
  • Kotlin .removeSurrounding no funciona para despojar a Aws cadena de ARN
  • Llame a getMeasunetworkingWidth () o getWidth () para RecyclerView return 0 en data binding
  • Clase abstracta de Kotlin con param genérico y methods que usan param de tipo
  • Android Kotlin: java.lang.NoClassDefFoundError: Resolución fallida de: <KotlinObject>
  • Android Studio y Kotlin: reference no resuelta: también
  • el modificador lateinit no está permitido en las properties de tipo primitivo en Kotlin
  • Cómo comparar una class <*> contra un tipo primitivo en caja Java sin las advertencias del comstackdor de Kotlin
  • ¿Hay alguna manera de hacer que scroll de ViewPager DecorView tenga el contenido del fragment?
  • Error de Kotlin: no se pudo encontrar org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7
  • ¿Cómo enviar datos de text al canal Thinkspeak desde la aplicación de Android?