Писал сервер, и понадобилось обработать application/json запрос, очень помог код со stackOverflow для получения всей структуры json, делается это вот так…
Для своей задачи сделал так…
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 |
procedure TDecodePostRequest.ParseJson(const aAsObject: TSuperTableString; var postParams: TStringList); var names: ISuperObject; name: string; items: ISuperObject; item: ISuperObject; idx: Integer; value: string; begin if Assigned(aAsObject) then begin names := aAsObject.GetNames; items := aAsObject.GetValues; for idx := 0 to items.AsArray.Length - 1 do begin name := names.AsArray[idx].AsString; item := items.AsArray[idx]; if item.DataType = stObject then value := '<Object>' else if item.DataType = stArray then value := '<Array>' else value := item.AsString; postParams.Add(name + '=' + value); // if SameText(Name, 'id') then // WriteLn(Format('%s: %s', [aPrefix + Name, Value])); // // if Item.DataType = stArray then // for ArrayItem in Item do // ProcessObject(ArrayItem.AsObject, aPrefix + Name + '.'); // // if Item.DataType = stObject then // ProcessObject(Item.AsObject, aPrefix + Name + '.'); end; end; end; |