Использование модуля Perl JSON для создания объекта JSON - PullRequest
1 голос
/ 28 октября 2009

Я пытаюсь создать объект JSON, чтобы вернуться к запросу jQuery.

Я пытаюсь использовать jQuery, связанный с модулем выбора

и я пытаюсь создать объект JSDN с помощью модуля JSON Perl .

Я понятия не имею, что я делаю неправильно или как я могу отладить это, но самое лучшее, что я могу сделать, это получить диалоговое окно JS с сообщением "Неизвестная ошибка ...."

Это все, что я пытался сделать для создания объекта JSON, я думал, что это будет все, что нужно, но это не так. Есть идеи?

ТИА

use JSON;
my %data = (1 => 'val1',
            2 => 'val2',
            3 => 'val3',
           );
my $json_text = to_json(\%data);
print $json_text;

Ответы [ 3 ]

5 голосов
/ 28 октября 2009

Запуск скрипта дает:

{"1":"val1","3":"val3","2":"val2"}

… что является ожидаемым результатом.

Проблема почти наверняка заключается в том, какой код вы используете для передачи JSON с вашего сервера на клиент.

1 голос
/ 28 октября 2009

Похоже, вы уже поняли свою проблему, и если вам интересно, почему он не работает, это потому, что метод to_json не экспортируется из JSON.pm в более старые версии модуля JSON. Последняя версия CPAN (2.0) экспортирует to_json в ваше пространство имен, но версии ~ 1.5 не требуют и требуют JSON ::. Многие репозитории все еще содержат эту старую версию, и если вы работаете на CentOS ~ 5.3 или более старой версии Fedora Core, у вас будет более старый JSON.pm.

1 голос
/ 28 октября 2009

Пусть javascript выведет текст ответа перед обработкой в ​​текстовое поле, чтобы вы могли увидеть, происходит ли сбой при передаче. Кроме того, вы захотите поместить что-то перед данными, например "myVar =", чтобы данные были назначены чему-то на другом конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...