- 论坛徽章:
- 307
|
本帖最后由 sunzhiguolu 于 2016-04-07 15:29 编辑
- #!usr/bin/perl
- use strict;
- use warnings;
- sub to_jason{
- my ($sT, $ra) = (@_);
- if ($sT eq "WriteRows"){
- printf ('{"type":"%s","%s":"%s","%s":"%s","%s":"%s"}%s',$sT,@$ra,"\n");
- }elsif ($sT eq "UpdateRows"){
- printf ('{"type":"%s","old_%s":"%s","old_%s":"%s","old_%s":"%s","%s":"%s","old_%s":"%s","old_%s":"%s"}%s',$sT,$ra->[0],$ra->[1],$ra->[3],$ra->[4],$ra->[6],$ra->[-1],$ra->[0],$ra->[2],$ra->[3],$ra->[4],$ra->[6],$ra->[7],"\n");
- }else{
- my @aCopy = @$ra;
- while (@aCopy){
- printf ('{"type":"%s","%s":"%s","%s":"%s","%s":"%s"}%s',$sT,splice (@aCopy,0,6),"\n");
- }
- }
- }
- my ($sPrint, @aData, $sType);
- my $sPreType = $1 if (<> =~ /(\w+)/);
- while (<>){
- if (/\A=\W+(\w+)/){
- ($sPrint, $sType) = (1, $1);
- }else{
- push (@aData, $_) foreach (m/(?:(?<=: )|(?<==> ))\w+/g);
- }
- if ($sPrint || eof){
- to_jason ($sPreType, \@aData);
- ($sPrint, $sPreType, @aData) = (0, $sType, ());
- }
- }
复制代码 perl toJason.pl data- {"type":"WriteRows","id":"10","name":"aa","sc":"100"}
- {"type":"UpdateRows","old_id":"10","old_name":"aa","old_sc":"100","id":"20","old_name":"aa","old_sc":"100"}
- {"type":"WriteRows","id":"10","name":"aa","sc":"100"}
- {"type":"DeleteRows","id":"20","name":"aa","sc":"100"}
- {"type":"DeleteRows","id":"20","name":"aa","sc":"100"}
复制代码 |
|