代码之家  ›  专栏  ›  技术社区  ›  pavlos163

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

  •  1
  • pavlos163  · 技术社区  · 7 年前

    JsonPath 从JSON文件中检索值。JSON文件如下所示:

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

    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"}
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   pavlos163    7 年前

    [ ] 符号从 JSONArray String

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

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