2013-10-25 4 views
0

У меня есть исходный массив (пользователи) с несколькими (строками и числовыми) массивы в нем:Javascript преобразовать строку в мульти массива массива

var users = [ 
['User: 10792 - Jack',45.7546,-117.807,2,'/res/smR11.gif'], ['User: 11248 - John',38.0867,131.976,3,'/res/smR08.gif'] 
]; 

У меня есть строка данных с нашего сервера в текущем виде:

newData = "['User: 18469 - Gary',-33.9399732539481,151.164383805489,3,'/res/markerw.gif'],['User: 10020 - Robert',40.6437563454472,-73.7593346140851,6,'/res/smR10.gif']"; 

Я удаляю все существующие данные с помощью users.length = 0;

Затем мне нужно вставить newData в массив пользователей.

ПРИМЕЧАНИЕ: Я могу, очевидно, изменить данные сервера в любой другой формат , который был бы более подходящим.

Любая помощь была бы принята с благодарностью.

+0

Каков ваш вклад и ожидаемые результаты? – Halcyon

+0

Вы не даете достаточной информации. Какой язык и технология вы используете? ASP.NET MVC/Ruby на рельсах, PHP и т. Д. – alexmac

+3

[JSON] (http://json.org/) будет более подходящим. Тогда это будет так же просто, как «users = JSON.parse (newData)» (переписывание, а не добавление). – Bergi

ответ

-1

Ваша newData строка выглядит очень похожа на javascript над ней. Как об этом ...

users = eval('[' + newData + ']'); 

[EDIT] Как Берги, rajeshkakawat и StephenJames отметил, eval будет работать, но менее надежна.

См: JSON.parse vs. eval()

+0

это сработает, но использование eval обычно обескураживается, потому что оно не так безопасно и также вяло, 'JSON .parse' будет более эффективным и надежным методом. –

+0

Спасибо Стивен ... это сработало отлично! – user2919549

+0

@ user2919549 Учитывая, что это была идея Стивена, возможно, вы могли бы поддержать один из своих ответов – jozxyqk

2

попробовать что-то вроде этого

 var users = JSON.parse(newData); 
Смежные вопросы