Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

JSON - помогите с разбором строки [D7, XP]


Romingood ©   (2010-03-22 15:41:00) 

Привет всем!

Требуется строку вида:

"0000":{"6666":[
{"id":"11","var1":111,"str":"name1"},
{"id":"22","var1":222,"str":"name2",}]};

Конвертировать в массив вот такого вида?

gl_id=0000, gl_id2=6666, id=11, var1='111', str='name1'
gl_id=0000, gl_id2=6666, id=22, var1='222', str='name2'

Подскажите плз на примере, как всё это разобрать.
Весь сайт облазил, не нашел...

Пытался регэкспами распарсить входную строку, но у меня получается нормально выдернуть только первую строку, а вторая и т.п. уже теряют
gl_id и gl_id2 ...


sniknik   (2010-03-22 19:36:00) [1]

> имена начинающиеся с цифры, в javascript может быть тоже
так и есть, т.е. то что ты приводишь это не json, нельзя преобразовать в валидный обьект

а вот так можно, может поможет, хоть и на javascript
var tst = {" v000":{" v666":[
            {"id":"11","var1":111,"str":"name1"},
            {"id":"22","var1":222,"str":"name2",}]} };

var i, s = '';
for(i=0; i<tst.v000.v666.length; i++) {
 s = s + 'gl_id=v000, gl_id2=v666, id='+tst.v000.v666[i].id+', var1='+tst.v000.v666[i].var1+', str='+tst.v000.v666[i].str + '\n';
}
alert(s);


sniknik   (2010-03-22 17:51:00) [2]

> встроенные здесь у меня имелось ввиду:
> голая винда, голый делфи.
> делаем project-import type library и вуаля, все что надо уже есть.
голая винда, голый делфи.
кладем модуль в папку проекта, и вуаля, все что надо уже есть.
какая разница.

> как в цикле сделать из
зачем цикл? он присваиванием должен делать.

> Приведите плз рабочий пример.  неважно, на каком из Тулкитов он будет реализован.
на javascript пойдет? я именно там "разбирал" объекты, а на сервере только "собирал", и без тулкитов это было делать проще.  
а "разбирается" это так, при генерации странички внутрь  помещаем
var ar = "1":{"2":[{"id":"3","var1":4,"str":"5"}]};

и все, объект готов.
кстати в дельфи не позволяются имена начинающиеся с цифры, в javascript может быть тоже, я просто не пробовал.
а у тебя тут поле объекта с именем 1, 2... (и со значениями объект и массив с объектом), неважно значения но названия полей???


Romingood   (2010-03-22 17:12:00) [3]

to "Медвежонок Пятачок" - не, голыми руками тут не справиться, хотя штука удобная!

to "sniknik" - поверьте, я там был и всё это качал, пробовал.
Но как обычно, есть разрозненные мануалы, есть какие-то куски примеров, но так и не нашел я примера, как в цикле сделать из

"1":{"2":[{"id":"3","var1":4,"str":"5"}]};

вот что:

id=1, id2=2, id3=3, var1=4, str=5

Приведите плз рабочий пример.  неважно, на каком из Тулкитов он будет реализован.


Медвежонок Пятачок   (2010-03-22 16:51:00) [4]

встроенные здесь у меня имелось ввиду:
голая винда, голый делфи.
делаем project-import type library и вуаля, все что надо уже есть.

не круче, "легче".

дбф тоже легче чем файл данных оракла.
нажал ф3 в фаре и все данные как на ладони. даже без плугина для дбф


sniknik   (2010-03-22 16:40:00) [5]

> а что, встроенных средств у этого jsonа неужели нету?
встроенных и для xml нету
> я и подумал, может он на самом деле круча чем xml
не круче, "легче". и в некоторых случаях удобнее (аякс сервер в паре с клиентом на javascript).

http://json.org/
Delphi:
   * Delphi Web Utils.
   * JSON Delphi Library.
   * JSON Toolkit.


Медвежонок Пятачок   (2010-03-22 16:32:00) [6]

его тут просто так хвалили, хвалили.
я и подумал, может он на самом деле круча чем xml


Медвежонок Пятачок   (2010-03-22 16:27:00) [7]

а что, встроенных средств у этого jsonа неужели нету?
чтобы достать данные?


Romingood   (2010-03-22 16:22:00) [8]

Я так и понял :)
Тока примерчик бы. если нетрудно, плз.


Anatoly Podgoretsky   (2010-03-22 15:44:00) [9]

> Romingood  (22.03.2010 15:41:00)  [0]

Оперировать надо набором строк, от начала до терминатора ;


Наверх

Титульная страница Поиск, карта сайта Написать письмо