- PVSM.RU - https://www.pvsm.ru -

Работа с форматом JSON на языке PERL

Работа с форматом 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

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/50153

Ссылки в тексте:

[1] Источник: http://habrahabr.ru/post/205130/