[Moscow.pm] JS Object -> request params -> perl hash
Sergey Malochinskiy
sergey.malochinskiy на gmail.com
Сб Июл 21 01:03:41 PDT 2012
Здравствуйте!
Очередной возможно глупый вопрос.
Пишу REST сервис на Mojolicious и Can.js на стороне клиента.
1. На get запрос отдаю такой JSON (просто из hash):
[
{
"category_id":"1",
"js":"",
"values":[
{
"lang_id":"1",
"language":"Russian",
"value":"Помощь",
"value_id":"1",
"key_id":"1",
"language_short":"ru"
},
{
"lang_id":"2",
"language":"English",
"value":"Help",
"value_id":"14",
"key_id":"1",
"language_short":"en"
}
],
"category":{
"name":"Static pages urls"
},
"id":"1",
"key":"url_help"
}
]
2. На клиенте это все преобразовывается в объект, объект биндится на
форму, редактируется и через PUT отдается на сервер в виде:
category_id:1
js:
values[0][lang_id]:1
values[0][language]:Russian
values[0][value]:Помощь
values[0][value_id]:1
values[0][key_id]:1
values[0][language_short]:ru
values[1][lang_id]:2
values[1][language]:English
values[1][value]:Help
values[1][value_id]:14
values[1][key_id]:1
values[1][language_short]:en
category[name]:Static pages urls
key:url_help
Т.е. при получении параметров запроса через
my $params = $self->req->body_params->to_hash;
Получаю hash вида:
{
'values[1][language]' => 'English',
'category[name]' => 'Static pages urls',
'values[1][key_id]' => '1',
'values[1][language_short]' => 'en',
'values[1][value]' => 'Help',
'key' => 'url_help',
'values[0][value_id]' => '1',
'category_id' => '1',
'values[0][language_short]' => 'ru',
'js' => '',
'values[1][lang_id]' => '2',
'values[0][key_id]' => '1',
'values[0][value]' => "\x{41f}\x{43e}\x{43c}\x{43e}\x{449}\x{44c}",
'values[0][lang_id]' => '1',
'values[0][language]' => 'Russian',
'values[1][value_id]' => '14'
}
Есть какие-то способы кроме написать парсер получить hash похожий на
изначальный?
--
Best regards,
Sergey Malochinskiy
Подробная информация о списке рассылки Moscow-pm