Как преобразовать этот формат в формат JSON в Perl? - PullRequest
0 голосов
/ 08 марта 2012

Я хочу преобразовать свой оригинальный формат в формат 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 Ответ

2 голосов
/ 08 марта 2012
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
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...