Форум » [x]Harbour » JSON » Ответить

JSON

MIKHAIL: Как то не корректно работает hb_jsonDecode, возвращает DATE() в формате "С" и если hash массив определен с числовыми ключами, то опускает их. Это косяк или что то подкрутить нужно ?

Ответов - 6

Andrey: MIKHAIL пишет: Это косяк или что то подкрутить нужно ? Давай пример, а то так сложно судить...

MIKHAIL: Пример: a:=hb_hash() a['dat']:=date() a[0]:=222 a['TYP']:="text" a[1]:="text2" a['kod']:=7777 ? "длинна массива:",len(a) ? "кодируем:" ? J:=hb_jsonEncode(a,.t.) ? "декодируем обратно:" hb_jsonDecode(J,@a) ? "получена длинна массива:",len(a) for i:=1 to len(a) ? hb_hKeyAt(a,i),"=>",v:=hb_hValueAt(a,i),valtype(v) next Результат выполнения: длинна массива: 5 кодируем: { "dat" : "20191011", "TYP" : "text", "kod" : 7777 } декодируем обратно: получена длинна массива: 3 dat => 20191011 C TYP => text C kod => 7777 N

SergKis: MIKHAIL пишет Это косяк или что то подкрутить нужно ? Это так работает, к сожалению. "C" идет и для TimeStamp. Эти преобразования надо делать самому, к примеру передавая в свою ф-ю доп. hash с такими же ключами (строковыми) и значением valtype и в соответствии с ним делать доп. преобразования. Для себя (только своих программ) делал свою ф-ю форм. json и чтения, для внешнего исп. не дошел, т.к. проект с json отложился. Если надо ф-ии могу выложить


SergKis: MIKHAIL С таким вариантом json не сталкивались ?[pre2] { name: 'recid', type: 'text', html: { caption: 'ID', attr: 'size="10" readonly' } }, { name: 'fname', type: 'text', required: true, html: { caption: 'First Name', attr: 'size="40" maxlength="40"' } }, { name: 'lname', type: 'text', required: true, html: { caption: 'Last Name', attr: 'size="40" maxlength="40"' } }, { name: 'email', type: 'email', html: { caption: 'Email', attr: 'size="30"' } }, { name: 'sdate', type: 'date', html: { caption: 'Date', attr: 'size="10"' } } [/pre2] его decode не берет f encode не делает

Петр: SergKis пишет: его decode не берет f encode не делает Значит hbjson не поддерживает json5

SergKis: Петр пишет Значит hbjson не поддерживает json5 Как раз об этом и говорю, т.к. формат поддерживаемый hbjson ф-ями уже давно не встречал в использовании - только json5



полная версия страницы