RoR: to_json для массива хэшей - PullRequest
2 голосов
/ 16 июня 2009

У меня есть массив хэшей в действии Rails, который я возвращаю клиенту в формате json:

{"msg": "Got report data.Check 'report' json object. ", "success": true, "reports": "[{\"total_transfers\": 0, \"total_keywords\": 0, \"keyword\": \"plum\", \"total_duration\":1464.0, \"total_calls\": 22, \"total_sms\": 0, \"avg_duration\": 67,\"total_email\": 0}]"}

В действии я делаю: возвращаю отчет.to_json, но, как вы можете видеть, он не выглядит как действительный json (почему экранирующие символы?)

В коде js на стороне клиента я делаю reports.length и получаю 163 ??? когда он должен сказать 1, потому что в массиве отчетов есть только один «отчет».

Ответы [ 2 ]

0 голосов
/ 16 июня 2009
reports_array_object = eval("(" + reports + ")");

сладкая !!!! * * 1002

0 голосов
/ 16 июня 2009

Как вы видите, «отчеты» - это одна большая строка вместо массива хеша, который вы ожидаете (163 - это длина строки, и именно поэтому вы можете видеть escape-символы). Какую библиотеку JSON вы используете с рельсами? Каким объектом является ваш массив хэшей? Возможно, не реализован метод to_json ...

В качестве альтернативы вы можете сначала попытаться преобразовать свой ответ в yaml, поскольку получить json проще.

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