Анализ схемы JSON для получения имен столбцов в соответствии с порядком схемы - PullRequest
0 голосов
/ 07 июня 2018

Я извлекаю поля из схемы Json (свойства), но поля не соответствуют порядку схемы.

Код: - Файл схемы JSon-

{
  "type": "object",
  "required": [ "title", "description" ],
  "properties": {
    "title": { "type": "string" },
    "description": { "type": "string" },
    "termsOfServiceUrl": { "type": "string", "format": "uri" },
    "contact": { "type": "integer", "format": "email" },
    "license": { "type": "string" },
    "licenseUrl": { "type": "string", "format": "uri" }
  },
  "additionalProperties": false
}

val schemafileparse = parse(schemafile)

 val column_list = (schemafileparse \"properties").camelizeKeys.extract[Map[String,Any]].keySet

Результаты: -

Set(termsOfServiceUrl, description, contact, license, title, licenseUrl)

Ожидаемые результаты: -

Set(title, description, termsOfServiceUrl, contact, license, licenseUrl)

как получить ожидаемые результаты.Я получу файл данных отдельно в соответствии со схемой конфигурации JSON.

1 Ответ

0 голосов
/ 07 июня 2018

Поскольку JObject по умолчанию использует HashMap для получения значений JObject , а HashMap равно неупорядоченным .

Так что, возможно, вы можете вручную собрать имя поля из JObject, например:

  val column_list = (schemafileparse \ "properties") match {
    case JObject(k) => k.map(i => i._1)
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...