Работа с форматом JSON на языке PERL.
Формат JSON
JSON(JavaScript Object Notation) – текстовый формат данных. Является альтернативой формата XML. На примере рассмотрим отличия форматов JSON и XML. Допустим, разработчику необходимо хранить информацию о студентах в приложении «Journal students». В листинге, представленном ниже, приведена реализация хранения данных с использованием формата XML.
<student>
<name>Алексей</name>
<surname>Алексеев</surname>
<faculty>Экономический</faculty>
<group>Э-51</group>
<adress>
<city>Москва</city>
<street>Береговая</street>
<house>2</house>
<apartment>14</apartment>
</adress>
</student>
<student>
<name>Петр</name>
<surname>Петров</surname>
<faculty>Машиностроительный</faculty>
<group>М-72</group>
<adress>
<city>Москва</city>
<street>Речная</street>
<house>12</house>
<apartment>24</apartment>
</adress>
</student>
Подобная структура данных представленная в формате JSON будет выглядеть следующим образом:
[
{
"name": "Петр",
"surname": "Петров",
"faculty": "Машиностроительный",
"group": "М-72",
"adress": {
"city": "Москва",
"street": "Речная",
"house": "12",
"apartment": "24"
}
},
{
"name": "Алексей",
"surname": "Алексеев",
"faculty": "Экономический",
"group": "Э-51",
"adress": {
"city": "Москва",
"street": "Береговая",
"house": "2",
"apartment": "14"
}
}
]
Постановка задачи
Необходимо написать скрипт на языке Perl, предназначенный для парсинга структуры данных формата JSON. Это необходимо для операций, производимых над данными из структуры формата JSON.
JSON и Perl
Для работы с форматом JSON используется библиотека JSON-2.53:
use JSON;
Подпрограмма decodeJSON, представленная ниже, предназначена для преобразования структуры данных формата JSON в структуру данных языка Perl (составленную из массивов и хэшей различной степени вложенности).
sub decodeJSON {
my ($JSONText) = @_;
my $hashRef = decode_json($JSONText);
return @$hashRef;
}
Подпрограмма encodeJSON предназначена для преобразования структуры данных Perl в структуру данных формата JSON.
sub encodeJSON{
my($arrayRef) = @_;
$JSONText= JSON->new->utf8->encode($perl_scalar);
return $JSONText;
}
Заключение
В результате получена структура данных Perl, для которой в дальнейшем будет написан следующий функционал:
• Добавление элементов;
• Удаление элементов;
• Редактирование данных элемента;
• Поиск необходимого элемента;
Автор: kaRTman3103