2012-03-08 3 views
0
내가 JSON 형식으로

이 형식을 Perl에서 JSON 형식으로 변환하는 방법은 무엇입니까?

내 원래의 형식을 내 원래의 형식을 변환 할

은 다음과 같습니다

RECORD 
F recordType 18 
F routingArea 04 
F cellIdentifier 9E55 
. 
RECORD 
F recordType 18 
F routingArea 04 
. 

는 다음과 같이 변환 :

[        #openfile 
{        #convert RECORD to [ 
    "recordType" : "18",  #cut prefix F and convert to json 
    "routingArea" : "04", 
    "cellIdentifier" : "9E55" #no comma before }, 
    },      
    { 
    "recordType" : "18", 
    "routingArea" : "04" 
    }       #no comma before ] 
] 

어떻게 이런 스크립트를 개발하기 위해?

감사합니다,

+1

http://search.cpan.org/perldoc?JSON – TLP

답변

2
use warnings; 
use strict; 

use JSON; 

my @ar; 
my $inner_hash = {}; 
while (<DATA>) { 
    chomp; 
    if ($_ eq '.') { 
      push @ar, $inner_hash; 
      $inner_hash = {}; 
    } elsif (/^F\s+(.*?)\s+(.*?)$/) { 
      $inner_hash->{$1} = $2; 
    } 
} 

my $json = to_json(\@ar); 
print $json, "\n"; 

__DATA__ 
RECORD 
F recordType 18 
F routingArea 04 
F cellIdentifier 9E55 
. 
RECORD 
F recordType 18 
F routingArea 04 
. 
관련 문제