![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Есть ли в Perl модуль, который помнит порядок ключей json в исходной строке?
т.е. так, что бы например в '{"a":1,"b":2,"c":3}' изменить b, и вернуть строку json с тем же порядком a, b, c? |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Можно попробовать занаследоваться от любого существующего класса, который умеет парсить JSON и переопределить метод, где собственно парсится JSON объект (в Perl получается hash). Вместо обычного хеша нужно использовать хеш, который сохраняет последовательность добавляемых элементов, например я нашел Tie::IxHash.
|
|||
|
||||
| reiserford |
|
|||
|
Новичок Профиль Группа: Awaiting Authorisation Сообщений: 22 Регистрация: 20.3.2012 Репутация: 1 Всего: 1 |
Data::Dumper умеет и сохранять порядок ключей, и, если задать соотв. параметры, выводить данные в json-виде.
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Если тс так и не смог решить задачу, вот моё решение:
Решить задачу через наследование не удалось, JSON::PP не спроектирован для наследования. Зато через переопределение всё делается очень коротко, достаточно было взглянуть на код JSON::PP. |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Спасибо
|
|||
|
||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: 4 Всего: 8 |
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
tishaishii, ваше решение не работает. Посмотрите код JSON::PP.
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
Интересно, JSON::XS уже наверно будет не так просто изменить...
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
Logo, ага, похоже только модификация исходного кода поможет.
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |