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

Александр2010

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

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

  • Посещение

Сообщения, опубликованные Александр2010

  1. Добрый день! Проблема подскажите может кто сталкивался ! Не могу развернуть приложение под ios (iphone-7 Версия OS 14)

    На реальном mack mini X code12.0.1 . Использую Delphi10.4 под android все все работает

    При попытке собрать приложение под ios вылетает следующее

    [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

    [DCC Error] E2597 ld: file too small (length=0) for architecture arm64

    PaServer 21.0 настроен и работает! под эмулятором устройства  компилируются!

    но что касаемо реально девайса то не как

  2. 6 часов назад, Slym сказал:

    а бездумно копипастить вредно. форум режет скобки... JArray.Items [ i ];
    приведенный код не соответствует тексту JSON... нету в тексте Array (обозначается [ ])

    Спасибо большое да в итоге методом тыка разобрался! Именно тыка) Помогли примеры на этом форуме

  3. В 28.11.2019 в 08:00, Slym сказал:

    function Proc(const Answerreqest:string):boolean;
    var
      JSON,AItem: TJSONValue;
      JRequest, JDistance: TJSONObject;
      JArray: TJSONArray;
      I: integer;
    begin
      JSON := TJSONObject.ParseJSONValue(Answerreqest);
      //if not Assigned(JSON) then exit(false); //<<< прикинь даже не обязательно проверять на nil :) JPath работает через FindValue - а он сам проверяет на nil
      try
        if JSON.TryGetValue<TJSONObject>('request',JRequest) then
          TabbedForm.memo3.Lines.Add('JRequest: ' + JRequest.ToString);

        if JSON.TryGetValue<TJSONObject>('distance',JDistance) then
        begin
          TabbedForm.memo3.Lines.Add('JDistance: ' + JDistance.ToString);
          TabbedForm.memo3.Lines.Add('price_1: ' + JDistance.GetValue<string>('price_1',''));
          if JDistance.TryGetValue<TJSONArray>('SomeArray',JArray) then
          begin
            TabbedForm.memo3.Lines.Add('count: ' + JArray.Count.ToString);
            for I := 0 to JArray.Count - 1 do
            begin
              AItem := JArray.Items;

              TabbedForm.memo3.Lines.Add(AItem.GetValue<string>('obj_id','') + ',' +
                                         AItem.GetValue<string>('obj_acc_id','') + ',' +
                                         AItem.GetValue<string>('obj_cat_id',''));
              TabbedForm.memo3.Lines.Add(AItem.GetValue<string>('obj_title',''));
              TabbedForm.memo3.Lines.Add(AItem.GetValue<string>('obj_descr',''));
              TabbedForm.memo3.Lines.Add(AItem.GetValue<string>('obj_address',''));
              TabbedForm.memo3.Lines.Add(AItem.GetValue<string>('obj_url',''));
            end;
          end;
        end;
      finally
        JSON.Free;
      end;
      result:=true;
    end;

     

     

    Привет у меня не работает((

    Если брать твой пример то ругается на   AItem := JArray.Items;   /// я что то не нашел строки где мы что то туда загоняем(

    Помоги пож распарсить вот такой пример а то уткнулся и что то прям беда(

    {
      "request": {
        "people_count": 2,
        "id": 66,
        "order": null,
        "price": null,
        },
        "distance": {
          "price_1": 90,
          "price_2": 80,
          "price_3": 70,
          "price_4": 60,
          "id": 12,
          "from_polygon_id": 20,
          "fromPolygonName": "ВОСТОЧНАЯ КОМ ЗОНА",
          "to_polygon_id": 18,
          "toPolygonName": "16 район"
        },
        "status": 10,
        "from_cord": null,
        "to_cord": null
      }
    }

     

    Можешь показать на этом примере как что отсюда достать ?

     

     

    В 28.11.2019 в 08:00, Slym сказал:

     

     

     

     

     

     

     

     

     

     

     

     

  4. 32 минуты назад, Slym сказал:

    ни одного TJSONArray в ответе нет
    так же нет ничего из этого:

    
    TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' +
                    aJSObjArr.GetValue('obj_cat_id').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_title').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_descr').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_address').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_url').Value);

    бросай те вы уже эти  as TJSONArray as TJSONObject - где проверки на существование? жесткого приведения требует только разве что TJSONArray, а остальное выше TJSONValue приводить не обязательно.
    используйте нотацию TJSONValue.GetValue<string>('obj_title','').- не найдено встанет значение по умолчанию... не нравится возьми TryGetValue
    даже jpath(указание пути названий узлов) работает JSONValue.GetValue<integer>('
    request.people_count,0)  - даже с массивами...
    касаемо массивов - можно указать тип искомой ноды SONValue.GetValue<TJSONArray>('
    request.distance',nil)

    Подскажи пожалуйста на моем примере как сделать чтобы получит каке то данные а то я просто пока не доганю всей механи процесса

  5. Парин помогите распарсить вот это а то всю голову сломал(

     

    {
      "request": {
        "people_count": 2,
        "id": 66,
        "order": null,
        "price": null,
        },
        "distance": {
          "price_1": 90,
          "price_2": 80,
          "price_3": 70,
          "price_4": 60,
          "id": 12,
          "from_polygon_id": 20,
          "fromPolygonName": "ВОСТОЧНАЯ КОМ ЗОНА",
          "to_polygon_id": 18,
          "toPolygonName": "16 район"
        },
        "status": 10,
        "from_cord": null,
        "to_cord": null
      }
    }

    получаю вот так

     Answerreqest := IdHTTP.Get('http://api.taxi.show.amberproduct.com/v1/request/info?token='+tokenkey+'&request_id='+idrequest+''); // Записываем ответ в answer

    ответ приведен выше

    HELP всю голову сломал уже пробовал как у (ZuBy)

    var
      aJSValue: TJSONValue;
      aJSObject, aJSObjArr: TJSONObject;
      aJSArray: TJSONArray;
      I: integer;
    begin
      Result := false;
      aJSValue := TJSONObject.ParseJSONValue(Answerreqest) as TJSONValue;
      if Assigned(aJSValue) then
      begin
        aJSObject := aJSValue as TJSONObject;
        TabbedForm.memo3.Lines.Add('request: ' + aJSObject.GetValue('request').Value);

        if aJSObject.GetValue('request').Value = '' then     // до сюда отрабатывает я получаю в мемо пустое сообщение
        begin
          Result := true;
          if Assigned(aJSObject) then
          begin
            aJSArray := aJSObject.GetValue('distance') as TJSONArray;     // дальше хочу полчить хоть 1 элемент json но даже не ругается просто  request
            if Assigned(aJSArray) then
            begin
              Result := true;
              TabbedForm.memo3.Lines.Add('price_1: ' + aJSObject.GetValue('price_1').Value);
              TabbedForm.memo3.Lines.Add('count: ' + aJSArray.Count.ToString);
              for I := 0 to aJSArray.Count - 1 do
              begin
                aJSObjArr := aJSArray.Items as TJSONObject;
                if Assigned(aJSObjArr) then
                begin
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_id').Value + ',' + aJSObjArr.GetValue('obj_acc_id').Value + ',' +
                    aJSObjArr.GetValue('obj_cat_id').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_title').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_descr').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_address').Value);
                  TabbedForm.memo3.Lines.Add(aJSObjArr.GetValue('obj_url').Value);
                end;
              end;
            end;
          end;
        end;
        aJSValue.Free;
      end;
    end;

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