2009-10-27 2 views
1

У меня время убийства, пытающегося создать объект JSON для возврата к запросу jQuery.Использование модуля Perl JSON для создания объекта JSON

Я пытаюсь использовать jQuery chained select module

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

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

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

ТИА

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

ответ

5

Выполнение сценария дает:

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

..., который является ожидаемый выход.

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

+0

Я просто распечатываю его - я думал, что это все, что нужно? «print $ json_text» – Chris

+0

@Chris: фрагмент кода, который вы предоставили в вопросе выше, является правильным и работает правильно. Попробуйте еще раз самостоятельно в отдельном скрипте и посмотрите. (Так что в вашем скрипте должно быть что-то еще.) – Ether

+0

Где вы его печатаете? Как выглядит вывод? – Quentin

1

Имейте javascript, выводящий текст ответа перед обработкой в ​​текстовое поле, чтобы вы могли видеть, что что-то не удается в транспорте. Кроме того, вы захотите поставить что-то перед данными, например «myVar =», чтобы данные были привязаны к чему-то другому.

+0

Спасибо Woolstar, я постараюсь выяснить, как это сделать (я ничего не знаю о JQuery) – Chris

1

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

Смежные вопросы