powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / масив json
25 сообщений из 58, страница 2 из 3
масив json
    #39823734
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёДа о чем тут спорить, просто сравнить объемы говнокода 21901959 и
<..>Причем тут SuperObject и System.JSON?
Мы то про X-SuperObject перетираем.


Который еще удобней чем простой SuperObject.
...
Рейтинг: 0 / 0
масив json
    #39823739
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёДа о чем тут спорить, просто сравнить объемы говнокода
Но его ведь можно на чем угодно написать
...
Рейтинг: 0 / 0
масив json
    #39823743
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev,

Можно, но на System.JSON мало говнокода не написать не выйдет. ;)
...
Рейтинг: 0 / 0
масив json
    #39823744
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat...Который еще удобней...
Ну так код давай. :)

Dmitry Arefievёёёёё...объемы говнокода
Но его ведь можно на чем угодно написать
Это да, мастерство не пропьёшь.
...
Рейтинг: 0 / 0
масив json
    #39823745
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
const
  cSrc = ''
    + '{'
    + ' "success": "1",'
    + ' "days": "3",'
    + ' "products": ['
    + '  {'
    + '   "2": {'
    + '    "firstName": "3333",'
    + '    "login": "2222",'
    + '    "id_user": "1",'
    + '    "lastName": "34234",'
    + '    "id": "2",'
    + '    "password": "2333"'
    + '   },'
    + '   "1": {'
    + '    "firstName": "23423",'
    + '    "login": "33",'
    + '    "id_user": "1",'
    + '    "lastName": "234324",'
    + '    "id": "1",'
    + '    "password": "432"'
    + '   }'
    + '  }]'
    + '}'
    ;

var
  fSO: ISuperObject;
  fIter: TSuperObjectIter;
begin
  fSO := SO(cSrc).A['products'][0];
  if ObjectFindFirst(fSO, fIter) then begin
    repeat
      ShowMessageFmt('"%s" firstName="%s" lastName="%s"',
        [fIter.key, fIter.val.S['firstName'], fIter.val.S['lastName']])
    until not ObjectFindNext(fIter);
  end;
end;



Красиво!
...
Рейтинг: 0 / 0
масив json
    #39823746
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
увы, но встроенная либа в использовании никогда красоты кода (X)SuperObject'ов не даст. То, что (X)SuperObject делает изящно, во встроенной выглядит как правило ужасно. Взяли бы вот лучше допилили (X)SuperObject, кому чего не хватает - тестов, или инди лишняя. к слову - инди вполне коробочная либа. другое дело, что зависимость чужеродная совсем, тут согласен.
...
Рейтинг: 0 / 0
масив json
    #39823749
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к слову - indy отключаемое в XSuperObject: SP_STREAM
...
Рейтинг: 0 / 0
масив json
    #39823751
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёНу так код давай. :)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
const
  cSrc = ''
    + '{'
    + ' "success": "1",'
    + ' "days": "3",'
    + ' "products": ['
    + '  {'
    + '   "2": {'
    + '    "firstName": "3333",'
    + '    "login": "2222",'
    + '    "id_user": "1",'
    + '    "lastName": "34234",'
    + '    "id": "2",'
    + '    "password": "2333"'
    + '   },'
    + '   "1": {'
    + '    "firstName": "23423",'
    + '    "login": "33",'
    + '    "id_user": "1",'
    + '    "lastName": "234324",'
    + '    "id": "1",'
    + '    "password": "432"'
    + '   }'
    + '  }]'
    + '}'
    ;

var
  fSO   : ISuperObject;
  Item  : IMember;
begin
  fSO := SO(cSrc)['products[0]'].AsObject;
  for Item in fSO do begin
    ShowMessageFmt('"%s" firstName="%s" lastName="%s"',
      [Item.Name, Item.AsObject.S['firstName'], Item.AsObject.S['lastName']])
  end;
end;
...
Рейтинг: 0 / 0
масив json
    #39823756
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatёёёёёНу так код давай. :)

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
const
  cSrc =...
var
  Item  : IMember;
begin
  for Item in SO(cSrc)['products[0]'].AsObject do
    ShowMessageFmt('"%s" firstName="%s" lastName="%s"',
      [Item.Name, Item.AsObject.S['firstName'], Item.AsObject.S['lastName']])
end;
...
Рейтинг: 0 / 0
масив json
    #39823757
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Ты еще переносы строк убей.
...
Рейтинг: 0 / 0
масив json
    #39823758
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так:
Код: pascal
1.
2.
3.
4.
5.
const
  cSrc =...
begin
  for var Item in SO(cSrc)['products[0]'].AsObject do ShowMessageFmt('"%s" firstName="%s" lastName="%s"', [Item.Name, Item.AsObject.S['firstName'], Item.AsObject.S['lastName']])
end;
...
Рейтинг: 0 / 0
масив json
    #39823759
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слабо короче? ;)
...
Рейтинг: 0 / 0
масив json
    #39823761
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот он какой Великий и могучий!
...
Рейтинг: 0 / 0
масив json
    #39823763
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в редакторе кода при наборе "Item." варианты отображаются?
...
Рейтинг: 0 / 0
масив json
    #39823765
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,
...
Рейтинг: 0 / 0
масив json
    #39823766
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кучка легаси говнопрограммеров извращается, что короче напишет, аааа)))))
...
Рейтинг: 0 / 0
масив json
    #39823767
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А с for var Item?
...
Рейтинг: 0 / 0
масив json
    #39823768
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

У меня 10.3 на этой машине не установлен.
...
Рейтинг: 0 / 0
масив json
    #39823770
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2кучка легаси говнопрограммеров извращается, что короче напишет, аааа)))))
Вот не надо вот тут вот!

У меня большая часть проектов - новоделы!
...
Рейтинг: 0 / 0
масив json
    #39823774
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerА с for var Item?
Да.

Код: pascal
1.
2.
  for var Item in SO(cSrc)['products[0]'].AsObject do
    Writeln(Item.Name:3, ' firstName = ', Item.AsObject.S['firstName']:10, ' lastName = ', Item.AsObject.S['lastName']:10);
...
Рейтинг: 0 / 0
масив json
    #39823835
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.3.2 System.JSON. На 30-40% быстрее SO.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var
  LVal: TJSONValue;
  LPair: TJSONPair;
begin
  LVal := TJSONObject.ParseJSONValue(cSrc);
  try
    for LPair in LVal.P['products[0]'] as TJSONObject do
      ShowMessageFmt('"%s" firstName="%s" lastName="%s"',
        [LPair.JsonString.Value, LPair.JsonValue.P['firstName'].Value, LPair.JsonValue.P['lastName'].Value]);
  finally
    LVal.Free;
  end;
end;
...
Рейтинг: 0 / 0
масив json
    #39823864
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2кучка легаси говнопрограммеров извращается, что короче напишет, аааа)))))вы удивительно непоследовательны, вы же сами это предложили :-)
...
Рейтинг: 0 / 0
масив json
    #39824084
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)asutp2кучка легаси говнопрограммеров извращается, что короче напишет, аааа)))))вы удивительно непоследовательны, вы же сами это предложили :-)ммм, я вроде наоборот призвал отказаться от (x)superobject, так как они легаси в чистом виде, и вместо их использовать system.json? ))))
...
Рейтинг: 0 / 0
масив json
    #39824219
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2kealon(Ruslan)пропущено...
вы удивительно непоследовательны, вы же сами это предложили :-)ммм, я вроде наоборот призвал отказаться от (x)superobject, так как они легаси в чистом виде, и вместо их использовать system.json? ))))В случае использования сериализации, system.json или ещё что-то ещё, не особо важно - хоть самописный велосипед. Будет тормозить не нравится одно, можно переписать, это довольно обозримый код и один.
Со стандартными классами и полной валидацией я уложился в 170 строчек модуля, который спокойно можно использовать в любом другом проекте.

Вы же сказали, что лучше ручками всё - 21903168 .п1, топик стартанул и все соревнуются как "лучше и красивее наложить побольше".
Так чему вы удивляетесь?
...
Рейтинг: 0 / 0
масив json
    #39824225
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

осталось сравнить скорострельность обработки json-а кодом "ручками" и кодом "красивее/легче", с разным объемом элементов в дереве )))
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / масив json
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]