2016-10-18 2 views
0

Мне грозит некоторая проблема, чтобы вставить json-файл в хэш-карту.Вставить JSON в hashmap

dest = { ... extra = { 'gen'.to_sym => data, #it works 
         'det'.to_sym => JSON.parse(myjson) } 

myjson is something like { aaa = 2, bbb=3.... } 

Когда я делаю

'det'.to_sym => JSON.parse(myjson) 

рубин жалуется, поднимая вопрос: нет неявного преобразования хэша в строку

Любая идея, как не вставить JSON внутри HashMap легко?

Благодаря

+0

Может быть, ваша переменная myjson уже хэш? Попробуйте сделать put myjson.class.name, чтобы увидеть, что это такое ... – roychri

+0

Примеры намного лучше, когда они полны, чтобы читатели могли продемонстрировать, как они предлагают вычислить желаемое возвращаемое значение. –

+0

Да, вы можете распечатать значение my_json –

ответ

0

Таким образом, вы пытаетесь разобрать то, что не JSon просто включить хэш в JSON, если вы хотите JSON в качестве значения

dest = { ... extra = { 'gen'.to_sym => data, #it works 
         'det'.to_sym => JSON.parse(myjson.to_json) } 
+0

Извините. Удалите .to_json, это ошибка. – Seb

+0

Хорошо, я немного смущен, вы пытаетесь добавить json к вашему хэшу, или вы пытаетесь добавить хэш, который вы превратили из json в свой хэш? –

+0

Я пытаюсь добавить json в свой хэш – Seb

0
  1. Там нет ничего называют hashmap рубина.
  2. Проблема не имеет ничего общего с вставкой в ​​хэш.

Вы смешиваете хэш и json вверх. Вам не нужно разбирать что-либо на этом этапе, и попытка проанализировать допустимый хеш вызывает ошибку. Вместо

'det'.to_sym => JSON.parse(myjson) 

просто сделать:

'det'.to_sym => myjson