powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / парсинг json delphi 6
11 сообщений из 11, страница 1 из 1
парсинг json delphi 6
    #39472153
forward12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Поиском пользовался, видел несколько похожих топиков, особо помог топик по делфи 7 где рекомендовали использовать компонент Fundamentals.JSON.4.0.07.
Компонент работает на делфи 6 хорошо , но не хватает примеров и документации. Парсить джейсон получается на базе из процедуры по selftest, но дальше пришлось нагородить костылей. Хотелось бы избавится от костылей и пользоватся всеми возможностями компонента по парсингу данных. Пробовал брать примеры от других компонентов и по аналогии кодить но увы ступор. По сути у меня большинство джейсон обьектов это массивы в которых 5-10 полей.
Я использую код из примера
Код: pascal
1.
2.
3.
 P := TJSONParser.Create;
  A := P.ParseText(ss);
  X := TJSONObject(A);


а вот как раздробить этот TJSONObject на массив TJSONvalue, и дальше уже узнать размер этого массива и дальше уже поэлементно обращаться к записям.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39472159
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно поинтересоваться? А зачем пользоваться средой выпуска 2001 года ?
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39472173
forward12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НяшикМожно поинтересоваться? А зачем пользоваться средой выпуска 2001 года ?
там уже готовый проект просто, нужно к нему добавить парсинг джейсона. Раньше там протокол обмена данных был на csv. Переписовать весь + старые компоненты на новые рельсы не целеесообразно.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473055
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
forward12,

Так ведь есть же исходники!
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473271
forward12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747forward12,

Так ведь есть же исходники!
есть код класса. Семплов нет. Функция селф тест она по созданию джейсон объекта и конвертации его в строку. И дальше простецкий парсинг. Но именно конвертации джейсон объекта в массий джейсонвельюе увы там нет.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473290
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
forward12...конвертации джейсон объекта в массий джейсонвельюе увы там нет.
Это что вообще такое?

Давай пример json скрипта.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473334
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
forward12,

Пример:
1. создание json объекта, содержащего массив других json объектов.
2. Разбор элементов массива на json - объекты

Код
Код: 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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
program Turbo;

{$APPTYPE CONSOLE}

uses
  SysUtils, flcJSON;

procedure DoIt;

var
  fJSO: TJSONObject;
  fJSO2: TJSONObject;
  fJSV: TJSONValue;

  fJSA: TJSONArray;
  i: Integer;

begin
  fJSO := TJSONObject.Create;
  try
    fJSA := TJSONArray.Create;

    // Заполнение массива объектами
    // первый объект
    fJSO2 := TJSONObject.Create;
    fJSO2.Add('int', TJSONInteger.Create(64));
    fJSA.Append(fJSO2);
    // второй объект
    fJSO2 := TJSONObject.Create;
    fJSO2.Add('str', TJSONString.Create('string'));
    fJSA.Append(fJSO2);

    fJSO.Add('array', fJSA);
    Writeln('Src json:');
    writeln(fJSO.GetJSONString([jboIndent])); // Что получилось

    // Разбор json на элементы массива
    writeln('~~~~~~~~~~'); //
    fJSA := fJSO.GetItemAsArray('array'); // Получение массива

    for i := 0 to fJSA.Count - 1 do begin
      fJSV := fJSA.Item[i];
      writeln('item ', i); //                       
      writeln(fJSV.GetJSONString([jboIndent])); // Элемент
    end;
  finally
    fJSO.Free;
  end;
end;
begin
  doIt;
  readln;
end.




Вывод:
Код: javascript
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.
Src json:
{
    "array" : [
        {
            "int" : 64
        }
        ,
        {
            "str" : "string"
        }

    ]

}

~~~~~~~~~~
item 0
{
    "int" : 64
}

item 1
{
    "str" : "string"
}



PS: Используется Fundamentals 5.00: https://github.com/fundamentalslib/fundamentals5
Рекомендованные правки: https://github.com/fundamentalslib/fundamentals5/issues/3 (см. также другие сообщения).

PPS: настоятельно рекомендую вместо json из состава fundamentals использовать SuperObjects (для твоей версии Delphi).
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473395
forward12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

спасибо, поковыряю этот код.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39473953
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДPPS: настоятельно рекомендую вместо json из состава fundamentals использовать SuperObjects (для твоей версии Delphi).
+1
На D7 отлично работает, освоил за пару часов.
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39474027
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
НяшикМожно поинтересоваться? А зачем пользоваться средой выпуска 2001 года ?
а почему нет?
...
Рейтинг: 0 / 0
парсинг json delphi 6
    #39474077
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До сих пор считаю D7 идеальной средой, но как не прискорбно надо двигаться вперед, так что продвинулся до XE7 :) Если уникод не уперся и библиотек никаких особо не надо то и сейчас на ней можно прекрасно разрабатывать.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / парсинг json delphi 6
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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