| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
andylars 27.09.2015 18:34 / 27.09.2015 19:08
@main[]
$hsh[
$.a[A]
$.b[
$.1[B1]
$.2[B2]
]
$.c[C]
]
^Hash_Serial[$hsh]
# хочется, чтобы возвращало a=A&b.1=B1&b.2=B2&c=C
@Hash_Serial[_data;_key;_result][locals]
^sys:Debug[$_key;_key]
^if($_data is hash){
^_data.foreach[k;v]{
$_key[${_key}.${k}]
$_result[^Hash_Serial[$v;$_key;$_result]]
}
}{
$_key[^_key.trim[left;.]]
$_result[$_result&$_key=$_data]
$_result[^_result.trim[left;&]]
$result[$_result]
^sys:Debug[$_result;_result]
}
# рабочего результата не добился, и не оптимизировал присвоения для читабельности
# есть поток отладчика в местах ^sys:Debug[var;comment] :
# который показывает, промежуточные "успехи"... где видно, что
# $_key ключи продолжают собираться, дальше чем надо
# $_result - накапливается и теряется на последнем ключе
COMMENT: VAR_VALUE CLASS
_key: <void>
_key: .a <string>
_result: a=A <string>
_key: .a.b <string>
_key: .a.b.1 <string>
_result: a=A&a.b.1=B1 <string>
_key: .a.b.1.2 <string>
_result: a=A&a.b.1=B1&a.b.1.2=B2 <string>
_key: .a.b.c <string>
_result: a.b.c=C <string>