то, что лучший способ состоит в том, чтобы преобразовать json, отформатировало пару значения ключа к рубиновому хешу с символом как ключ?

простой ответ

sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

Вы не должны останавливать все соединения с базой данных, это может быть сделано на лету.

99
задан Cœur 4 April 2017 в 10:37
поделиться

2 ответа

Здесь нет ничего встроенного, чтобы сделать трюк, но написать код, чтобы сделать это, используя гем JSON, не так уж сложно. В Rails есть метод symbolize_keys , если вы его используете, но он не символизирует ключи рекурсивно, как вам нужно.

require 'json'

def json_to_sym_hash(json)
  json.gsub!('\'', '"')
  parsed = JSON.parse(json)
  symbolize_keys(parsed)
end

def symbolize_keys(hash)
  hash.inject({}){|new_hash, key_value|
    key, value = key_value
    value = symbolize_keys(value) if value.is_a?(Hash)
    new_hash[key.to_sym] = value
    new_hash
  }
end

Как сказал Leventix, гем JSON обрабатывает только строки с двойными кавычками (которые технически правильно - JSON должен быть оформлен в двойные кавычки). Этот фрагмент кода очистит это перед попыткой его синтаксического анализа.

5
ответ дан 24 November 2019 в 04:58
поделиться

Конечно, есть гем json , но он обрабатывает только двойные кавычки.

1
ответ дан 24 November 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: