анализ ответа solr с вложенным списком значений - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь проанализировать имена «столбцов» и «ограниченных» (столбец и ограниченные списки будут содержать только 1 элемент) из ответа Solr, который выглядит следующим образом:

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}]
      }}"""

theответы могут содержать любое количество результатов в «документах».Из этого ответа я хотел бы разобрать "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))

Это работает для идентификаторов, так как идентификатор является строкой, но вы не можете использовать это в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...