Никто не помог, как просишь пример все молчят , наверно и незнают просто строят из себя асов.
сообстнно сабж:
на мой сервак будут передавть данные в формате JSON-RPC.прошу пример как парсить сие чюдо.
доки перечитал , но сам процесс получения данных не понял.
что бы взять GET запрос пишешь $ENV{'QUERY_STRING'},а как JSON данные ??
помогите если кто знает.
Наверное просто все считают что набрать json на search.cpan.org в строке поиска это не слишком сложно и не требует подробных инструкций.
>Наверное просто все считают что набрать json на search.cpan.org в строке поиска
>это не слишком сложно и не требует подробных инструкций.скачал всё со спана , поставил, прочел .если бы всё заработало врядли стал бы просить помощи и тратить время и своё и чужое.а эти так называемые "все" -кто хочет пусть сами попробуют - с ходу понять и заставить работать.
к слову рабочую клиентскую часть нашел , попробовал - насколько понял работает.
Про разницу между версиями прочитали? Модуль для корректного разбора GET/POST используете? Отлаживать пробовали?
Ну а самое главное научитесь правильно задавать вопросы, телепатов здесь не водится и вопросы в стиле "у меня все не работает как починить?" останутся без ответа.
>Про разницу между версиями прочитали? Модуль для корректного разбора GET/POST используете? Отлаживать
>пробовали?1 прочел всё что было на CPAN про JSON
2 скачал всё что было последнее.
3 для отладки надо доконца понять как парсить.>Ну а самое главное научитесь правильно задавать вопросы, телепатов здесь не водится
>и вопросы в стиле "у меня все не работает как починить?"
>останутся без ответа.опять тоже самое ... телепаты и всё такое ... где я писал про починить и не работает ?
вопрос конкретен до не приличия :
подскажите синтаксис взятия данных и JSON запроса при помощи перла , желательно с работающим примером.это кусок клиента:(тут вроде все понятно;url,content_type,post и всё остальное,
хотелось бы серверную часть получить, идеи есть,но тупо тестить методом перебора нету времени,горю)
my $actionurl = "http://localhost/cgi-bin/armserv"; &nb...
my $ua = LWP::UserAgent->new();
$ua->agent("JSONClient/0.1");
my $object = { test => "fish",
wibble => ["meep", "flange" ] };
my $json = to_json($object);
print "$json\n";
my $req = HTTP::Request->new(POST => $actionurl);
$req->content_type('application/json');
$req->content($json);
>опять тоже самое ... телепаты и всё такое ...Ну так задавайте правильно вопрос и не будут вам такое писать. Из ваших предыдущих сообщений совершенно не ясно было что за клиент и версия json используется, какие именно структура пересылается и каким набором команд, какие именно действия предпринимаются на принимающей стороне, что именно нарушается в работе, какие сообщения об ошибках, как выглядят переданные данные до и после прохода через json->decode. Все это надо указывать
>где я писал про починить и не работает ?
да прям в этом сообщении :), вы же просите дать работающий код, что в общем-то равносильно.
С учетом приведенного вами фрагмента могу написать работающий вариант принимающей стороны. Только сначала ответьте пожалуйста на один вопрос: зачем понадобился JSON для передачи данных от одного перлового скрипта к другому, чем не подошел тот же Storable?
>С учетом приведенного вами фрагмента могу написать работающий вариант принимающей стороны. Только
>сначала ответьте пожалуйста на один вопрос: зачем понадобился JSON для передачи
>данных от одного перлового скрипта к другому, чем не подошел тот
>же Storable?у меня есть уже написанный на перле скрипт который работает с простыми GET запросами,обрабатывает и дальше дергает инфу из нашей базы и возвращает клиенту.
что бы до конца прояснить ситуацию скажу что это для работы аппаратов по оплатам разных услуг (нтв+,телефонные карты и прочее) с компанией TELL CELL (может слышали )всё сделал уже 2 месяца работаем,а с этими байда ...
Так и непонятно зачем вам JSON, да и с передачей параметров в POST работаете странно. Но пусть будет
1. Ваш скрипт для передачи, слегка измененный(добавил посылание запроса и вывод ответа)
use strict;
use LWP;
use JSON;
use Data::Dumper;my $actionurl = "http://test/cgi-bin/t2.pl";
my $ua = LWP::UserAgent->new();
$ua->agent("JSONClient/0.1");my $object = {
test => "fish",
wibble => ["meep", "flange" ]
};my $json = to_json($object);
print "object:",Dumper($object),"\n";
print "json: $json\n";
my $req = HTTP::Request->new(POST => $actionurl);
$req->content_type('application/json');
$req->content($json);
my $res = $ua->request($req);
if ($res->is_success) {
print "Response:\n",$res->content;
}
else {
print $res->status_line, "\n";
}2. Скрипт принимающий данные:
#!/usr/bin/perl
use strict;
use JSON;
use Data::Dumper;
print "Content-type:text/html\n\n";
$/=undef;
my $raw_data=<>;
my $data=from_json($raw_data);
print "Raw data:$raw_data\n";
print "Perl data:",Dumper($data),"\n";3. результат работы:
object:$VAR1 = {
'wibble' => [
'meep',
'flange'
],
'test' => 'fish'
};json: {"test":"fish","wibble":["meep","flange"]}
Response:
Raw data:{"test":"fish","wibble":["meep","flange"]}
Perl data:$VAR1 = {
'wibble' => [
'meep',
'flange'
],
'test' => 'fish'
};
>Так и непонятно зачем вам JSON, да и с передачей параметров в
>POST работаете странно. Но пусть будетJSON нужен не мне - это оператор автоматов данные щлет в этом формате,я бы простым POST-ом обошелся . за скрипт спасибо.я и сам методом тыка нашел , но твоя конструкция тоже пригодится.
Только слать он будет совсем не так как это делаешь ты, хотя бы потому что твой вариант не соответствует стандарту передачи параметров в cgi. А чтобы понять что именно приходит ипользуй Data::Dumper.
если я не ошибаюсь конструкция приблизительно так должна выглядеть :
$jsondata = retrieve_json_from_post();
после чего следует декодить и работать с данными ,но чуствую что чего нехватает.