У меня есть массив JavaScript, который, помимо прочего, содержит URL. Если я пытаюсь просто поместить URL в страницу (массив находится в проекте с использованием Yahoo! Maps API), он показывает URL, как и должно быть.
Но если я пытаюсь сделать перенаправление или просто сделать 'alert' на элементе массива ссылок, я получаю:
function(){return JSON.encode(this);}
Насколько я понимаю, это происходит потому, что браузер выполняет JSON.encode при рендеринге страницы, поэтому ссылка отображается нормально. Я пробовал несколько способов сделать перенаправление (именно это я хочу сделать со ссылкой) корректным (включая использование 'eval'), но безуспешно.
Следуя некоторым рекомендациям, я выполнил eval('(' + jsonObject + ')')
, но он по-прежнему выдает тот же результат.
Так как же это делается?
Если вы получите этот текст в оповещении:
function(){return JSON.encode(this);}
когда вы пробуете alert(myArray[i]), то есть несколько вариантов:
Самый простой способ определить это - проверить typeof(myArray[i]).
Декодирование JSON в JavaScript - это просто eval(), если вы доверяете строке, или более безопасный код, который вы можете найти на http://json.org, если вы этого не делаете.
После этого у вас будет структура данных JavaScript, которую вы можете просматривать для получения нужных вам данных.