Перейти к содержанию
Fire Monkey от А до Я

x11

Пользователи
  • Постов

    828
  • Зарегистрирован

  • Посещение

  • Победитель дней

    13

Сообщения, опубликованные x11

  1. а сам файл на каких-нибудь онлайн сервисах нормально проходит валидацию?

    может джейсон немного кривоват?

    Пробуйте другие парсеры.

    Если у вас Delphi до 10.4.1, то новый TJSONIterator должен отработать быстрее.

  2. В 27.11.2020 в 16:10, Tumaso сказал:

    библиотеку, которая не развивается?

    Ну вот я использовал библиотеку, которая развивается и что из этого вышло?

    Один и тот же код в разных версиях Дельфи (Rio и Sydney) дает разный результат

     

    procedure TForm1.btnReadArrayClick(Sender: TObject);
    const sJSon = '{"ID":[0,55,true,false], "ID2":[1,60,false,false]}';
    
    var
     Iterator: TJSONIterator;
     Reader: TJsonTextReader;
     TextReader: TStringReader;
    begin
    
      TextReader  := TStringReader.Create(sJSon);
      Reader      := TJsonTextReader.Create(TextReader);
      Iterator    := TJSONIterator.Create(Reader);
    
      try
        while Iterator.Next do
        begin
          if Iterator.&Type = TJsonToken.StartArray then
            if Iterator.Recurse then
              while Iterator.Next do
              begin
                Memo1.Lines.Add('Key: ' + Iterator.Key);
                Memo1.Lines.Add('Index:' + Iterator.Index.ToString);
              end;
    
        end;//while
    
      finally
        FreeAndNil(TextReader);
        FreeAndNil(Iterator);
        FreeAndNil(Reader);
      end;
    end;

    Речь, о встроенной в Дельфи джейсон-библиотеке (Readers and Writers JSON Framework), которая поставляется, начиная с Seatle

    вот здесь есть описание на русском https://webdelphi.ru/2019/03/rabota-s-json-v-delphi-10-3-rio-2/

    Screenshot_7.jpg

  3. вроде начинает доходить

     

    procedure TForm1.Button1Click(Sender: TObject);
    const sJSon = '{"ID":[0,55,true,false], "ID2":[1,60,false,false], "ID3":[2,177,false,false]}';
    var
      Arr: ISuperArray;
      myJSON: ISuperObject;
      OMember: IMember;
      i: integer;
    begin
      myJSON := SO(sJSon);
    
      if myJSON.Count > 0 then
      begin
    
          for OMember in myJSON do
            if OMember.DataType = dtArray then
            begin
              arr := OMember.AsArray;
              Memo1.Lines.Add(IntToStr(arr.i[0]));
              Memo1.Lines.Add(IntToStr(arr.i[1]));
              Memo1.Lines.Add(BoolToStr(arr.B[2]));
              Memo1.Lines.Add(BoolToStr(arr.B[3]));
              Memo1.Lines.Add('---');
            end;
      end;
    end;

     

  4. Я уже задолбался. Одни говорят, использовать, другие, говорят, не использовать.

    Я пытался использовать ту, новую встроенную в Дельфи, начиная с версии 10.1 - "JSON Objects Framework"

    http://docwiki.embarcadero.com/Libraries/Sydney/en/System.JSON.Builders

    но в Sydney есть проблема и индексами в массивах.

  5. Не могу понять, как пройтись по всем объектам и у каждого объекта по их массивам?

    Цитата

    {"ID":[0,55,true,false], "ID2":[1,60,false,false]}, "ID3":[2,177,false,false]}

    Все примеры, которые я видел, привязываются к имени объекта.

    А если нужно без имени, а если имя и значение нужно получать во время итераций?

    Спасибо.

  6. Ок, замурчательно.

    А что там такого в манифесте прописано? Может там указано, что твоё приложение - для Андроид 4?

    Просто подобные приложения в Маркете не опубликуешь.

    А какой смысл перехват номеров в постоянно запущенном приложении? Оно же не будет у тебя постоянно на переднем плане, как только ты откроешь другое приложение, Андроид твое приложение через какое-то время прикроет все равно и оно не будет перехватывать номера.

  7. 40 минут назад, OnePeople сказал:

    Все работает, спасибо за пример.

    Ты мой пример использовал из первого сообщения?

    На какой версии Дельфи собран проект и на какой версии Андроида запустил? Меня ли что-то в манифесте?

  8. 40 минут назад, ТАГИР Тагирович сказал:

    exited with code 1

    а ты гуглил на тему ошибки?

    https://www.google.com/search?client=firefox-b-d&q=jar++exited+with+code+1

    http://fire-monkey.ru/topic/2975-seattle-android-ошибка-exited-with-code-1/

    может у тебя проблема с настройками SDK или версия Явы не та что надо?

  9. 18 минут назад, ТАГИР Тагирович сказал:

    перехват работает (Samsung 8, Android 9), но только если включено питание к телефону

    Ну и нафиг оно такое надо? Не факт ,что будет нормально работать на китайских поделках а-ля Хуйвей или Сяоми, где права урезаны ещё жесче.

  10. 15 минут назад, ТАГИР Тагирович сказал:

    Я правильно понимаю, что этот проект может выполнить перехват звонка если телефон не подключен к питанию

    Нет. Проект старый, может работать для Андроид 4-5 и не будет работать для Андроида 6 или выше. В Андроид 6 или 7 Гугл добавила "динамические права", т.е. запрос выскакивает прямо посреди работы приложения. А старые версии FMX эти запросы обрабатывать не умеют. Я проект делал на Berlin`е.

  11. А как справляетесь с "динамическими" правами при работе приложения?

    Ну т.е. когда андроид во время работы твоего приложения пользователя спрашивает: разрешить ли доступ этому приложению к камере или к диску?

×
×
  • Создать...