из строки в массив
Здравствуйте.
Есть строка send="{url:'', method:'POST', param:''}"; Как из этой строки сделать массив объектов send={url:'', method:'POST', param:''} ? |
|
Цитата:
Поясню: Есть : <input type="text" name="url" send="{url:'124', method:'POST', param:'44214'}"> var send = $(this.form).find('input[send]'); console.log(JSON.parse(send.attr('send'))); Uncaught SyntaxError: Unexpected token u |
niko42, это:
"{url:'', method:'POST', param:''}" не json. json выглядит так: "{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}" Тогда всё работает: var send = "{\"url\":\"\", \"method\":\"POST\", \"param\":\"\"}"; alert( JSON.parse(send) ); |
Цитата:
Смотрите: <input type="text" name="url" send="{'url':'124', 'method':'POST', 'param':'44214'}"> var send = $(this.form).find('input[send]'); var param = JSON.parse('"' + send.attr('send') + '"'); console.log(param.url); Ответ: undefined |
var text = "{url:'', method:'POST', param:''}"; var obj = new Function('return ' + text)(); alert(JSON.stringify(obj)); |
Блин, работает только в таком состоянии:
<input type="text" name="url" send='{"url":"124", "method":"POST", "param":"44214"}'> |
Цитата:
var param = JSON.parse('"' + "{'url':'124', 'method':'POST', 'param':'44214'}" + '"'); alert(typeof param); // внезапно? =) Суть-то совсем в другом: <input type="text" name="url" send='{"url":"", "method":"POST", "param":""}'> |
Цитата:
var send = $(this.form).find('input[send]'); var obj = new Function('return ' + send.attr('send'))(); console.log(obj.url); |
Цитата:
|
:-?
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { var s = $('input[data-send]').data('send'); alert(s.param) }) </script> </head> <body> <input type="text" name="url" data-send='{"url":"124","method":"POST","param":"44214"}'> </body> </html> |
Часовой пояс GMT +3, время: 14:23. |