解析带有嵌套值列表的Solr响应

时间:2019-05-08 14:08:26

标签: kotlin

我正在尝试从Solr的响应中解析“列”和“受限”名称(列和受限列表将只包含1个元素):

val objectString = """{
      "responseHeader":{
        "status":0,
        "QTime":5,
        "params":{
          "q":"column:card_num,first_name,last_name"}},
      "response":{"numFound":2,"start":0,"docs":[
          {
            "column":["card_num"],
            "restricted":["y"],
            "id":"ca5f4t768-4z61-987a-aeg6-zxxasdxerdf",
            "_version_":1632804569464438784},
          {
            "column":["first_name"],
            "restricted":["n"],
            "id":"ca5f4t768-4z61-987a-aeg6-zxfegq9ae0",
            "_version_":1632804569464438784}]
      }}"""

响应可以在“ docs”中包含任意数量的结果。从这个响应中,我想解析出“ card_num”,“ Y”,“ first_name”,“ N”。

我正在使用klaxon库。

val pathMatcher = object : PathMatcher {
        override fun pathMatches(path: String) = Pattern.matches(".*response.*docs.*id.*", path)

        override fun onMatch(path: String, value: Any) {
            println("Adding $path = $value")
        }
    }
Klaxon().pathMatcher(pathMatcher).parseJsonObject(StringReader(objectString))

这适用于ID,因为ID是一个字符串,但是您不能在列表上使用它。

0 个答案:

没有答案