Почему вы анализируете строку самостоятельно, когда есть библиотеки, которые делают это для вас? json.org имеет библиотеки синтаксического анализа и кодирования JSON практически для всех языков, о которых вы только можете подумать (и, возможно, некоторых из них нет). В Perl:
use strict;
use warnings;
use JSON qw(from_json to_json);
# enable slurp mode
local $/;
my $string = <DATA>;
my $data = from_json($string);
use Data::Dumper;
print "the data was parsed as: " . Dumper($data);
__DATA__
[
{
"id":"1",
"key2":"blah"
},
{
"id":"2",
"key9":"more blah"
},
{
"id":"stringVal",
"anotherKey":"even more blah"
}
]
.. производит вывод (я добавил массив данных верхнего уровня вокруг данных, чтобы он был проанализирован как один объект):
the data was parsed as: $VAR1 = [
{
'key2' => 'blah',
'id' => '1'
},
{
'key9' => 'more blah',
'id' => '2'
},
{
'anotherKey' => 'even more blah',
'id' => 'stringVal'
}
];