| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
AleXp 31.01.2015 10:59 / 01.02.2015 04:31
Пример из документации:$json_string[{
"a1":{"b": 1, "c": "xyz", "d": "zzz"},
"a2":{"b": 1, "b": 2, "b": 3}
}]
$h[^json:parse[$json_string;
$.double(false)
$.distinct[all]
$.object[$handler]
]]На выходе обещают: $h[
$.a1[
$.b[1]
$.c[xyz]
$.d[=3=]
]
$.a2[
$.b[1]
$.b_2[2]
$.b_3[3]
]
]А реально получается: $h[
$.a1[
$.b(1)
$.c[xyz]
$.d[zzz]
]
$.a2[
$.b(1)
$.b_2(2)
$.b_3(3)
]
]В общем параметр $.double() не работает.$json_string[{
"a1":{"b": "1", "c": "xyz", "d": "zzz"},
"a2":{"b": "1", "b": "2", "b": "3"}
}]то тогда парсер всё переведёт в строки: $h[
$.a1[
$.b[1]
$.c[xyz]
$.d[zzz]
]
$.a2[
$.b[1]
$.b_2[2]
$.b_3[3]
]
]При этом $.double() опять ни на что не влияет.$.object[$handler], кстати, тоже работает не так как в документации расписано. Он вызывается только для
"a1":{...}и "a2":{...}и не вызывается для внутренних членов этих массивов. Т.е. преобразования из "d":"zzz"в
$.d[=3=]не получается. Выходит
$.d[zzz].