Я хочу встроить объект JSON в качестве параметра формы для отправки на сервер rails.
вот что у меня так далеко:
<% form_tag :action => :create, :controller => :objects do %>
<%= text_field_tag :object %>
<%= submit_tag %>
<% end %>
и JavaScript для заполнения поля. data
является действительным JSON.
<script type="text/javascript">
$j(function(){
jQuery("#proposal").val(JSON.stringify(data));
});
</script>
но, когда сервер получает POST, мне нужно преобразовать params[:object]
в хеш, но он дважды экранируется, и даже при использовании .gsub("\\", "")
JSON.parse выглядит с ошибками и фактически не конвертируется в JSON объект из строки.
это моя строка JSON, полученная сервером:
"{\"name\":\"hello there,
I am JSON!\",
\"template_id\":1,
\"variables\":{\"hello\":\"there\",
\"me\":\"you\"},
\"sections\":\"[{\\\"name\\\": \\\"Template Section\\\",
\\\"contents\\\": [{\\\"id\\\": 1,
\\\"name\\\": \\\"RENAMED!\\\"}]},
{\\\"name\\\": \\\"section2\\\",
\\\"contents\\\": [{\\\"name\\\": \\\"something\\\",
\\\"body\\\": \\\"nothing\\\"},
{\\\"id\\\": 2,
\\\"name\\\": \\\"I renamed you\\\",
\\\"variables\\\": {\\\"hello\\\": \\\"i'm amazing\\\"}}]}]\",
\"attachments\":\"[{\\\"media_id\\\": 1}]\"}"