Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Akeneo: Get List of Products (using StringBuilder)
See more HTTP Misc Examples
Using a previously obtained request token, demonstrates how to get a list of products using a Chilkat StringBuilder. Using the StringBuilder is convenient because it prevents returning a potentially large string. Instead, the result is deposited into the StringBuilder object.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Http,
Chilkat.StringBuilder,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
sbJson: TStringBuilder;
json: TJsonObject;
v_linksSelfHref: string;
v_linksFirstHref: string;
current_page: Integer;
i: Integer;
count_i: Integer;
identifier: string;
family: string;
parent: string;
enabled: Boolean;
created: string;
updated: string;
j: Integer;
count_j: Integer;
strVal: string;
locale: string;
scope: string;
data: Boolean;
data_str: string;
v_linksDownloadHref: string;
data_int: Integer;
dataAmount: string;
dataUnit: string;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// Use your previously obtained access token.
// See Get Akeneo Access Token
http.AuthToken := 'access_token';
sbJson := TStringBuilder.Create;
success := http.QuickGetSb('http://pim.my-akeneo-site.com/api/rest/v1/products',sbJson);
if (success <> True) then
begin
WriteLn(http.LastHeader);
WriteLn(http.LastErrorText);
Exit;
end;
// A sample response looks like this.
// See below for sample code to parse the JSON response..
// {
// "_links": {
// "self": {
// "href": "https://demo.akeneo.com/api/rest/v1/products?page=3&limit=3"
// },
// "first": {
// "href": "https://demo.akeneo.com/api/rest/v1/products?page=1&limit=3"
// },
// "previous": {
// "href": "https://demo.akeneo.com/api/rest/v1/products?page=2&limit=3"
// },
// "next": {
// "href": "https://demo.akeneo.com/api/rest/v1/products?page=4&limit=3"
// }
// },
// "current_page": 3,
// "_embedded": {
// "_items": [
// {
// "_links": {
// "self": {
// "href": "https://demo.akeneo.com/api/rest/v1/product/top"
// }
// },
// "identifier": "top",
// "family": "tshirt",
// "groups": [],
// "parent": null,
// "categories": [
// "summer_collection"
// ],
// "enabled": true,
// "values": {
// "name": [
// {
// "data": "Top",
// "locale": "en_US",
// "scope": null
// },
// {
// "data": "D�bardeur",
// "locale": "fr_FR",
// "scope": null
// }
// ],
// "description": [
// {
// "data": "Summer top",
// "locale": "en_US",
// "scope": "ecommerce"
// },
// {
// "data": "Top",
// "locale": "en_US",
// "scope": "tablet"
// },
// {
// "data": "D�bardeur pour l'�t�",
// "locale": "fr_FR",
// "scope": "ecommerce"
// },
// {
// "data": "D�bardeur",
// "locale": "fr_FR",
// "scope": "tablet"
// }
// ],
// "price": [
// {
// "locale": null,
// "scope": null,
// "data": [
// {
// "amount": "15.5",
// "currency": "EUR"
// },
// {
// "amount": "15",
// "currency": "USD"
// }
// ]
// }
// ],
// "color": [
// {
// "locale": null,
// "scope": null,
// "data": "black"
// }
// ],
// "size": [
// {
// "locale": null,
// "scope": null,
// "data": "m"
// }
// ]
// },
// "created": "2016-06-23T18:24:44+02:00",
// "updated": "2016-06-25T17:56:12+02:00",
// "associations": {
// "PACK": {
// "products": [
// "sunglasses"
// ],
// "groups": []
// }
// }
// },
// {
// "_links": {
// "self": {
// "href": "https://demo.akeneo.com/api/rest/v1/product/cap"
// }
// },
// "identifier": "cap",
// "family": "caps",
// "groups": [],
// "parent": null,
// "categories": [
// "summer_collection"
// ],
// "enabled": true,
// "values": {
// "name": [
// {
// "data": "Cap",
// "locale": "en_US",
// "scope": null
// },
// {
// "data": "Casquette",
// "locale": "fr_FR",
// "scope": null
// }
// ],
// "description": [
// {
// "data": "Cap unisex",
// "locale": "en_US",
// "scope": "ecommerce"
// },
// {
// "data": "Cap unisex",
// "locale": "en_US",
// "scope": "tablet"
// },
// {
// "data": "Casquette unisexe",
// "locale": "fr_FR",
// "scope": "ecommerce"
// },
// {
// "data": "Casquette unisexe",
// "locale": "fr_FR",
// "scope": "tablet"
// }
// ],
// "price": [
// {
// "locale": null,
// "scope": null,
// "data": [
// {
// "amount": "20",
// "currency": "EUR"
// },
// {
// "amount": "20",
// "currency": "USD"
// }
// ]
// }
// ],
// "color": [
// {
// "locale": null,
// "scope": null,
// "data": "black"
// }
// ]
// },
// "created": "2016-06-23T18:24:44+02:00",
// "updated": "2016-06-25T17:56:12+02:00",
// "associations": {
// "PACK": {
// "products": [
// "sunglasses"
// ],
// "groups": []
// }
// }
// },
// {
// "_links": {
// "self": {
// "href": "https://demo.akeneo.com/api/rest/v1/product/sweat"
// }
// },
// "identifier": "sweat",
// "family": null,
// "groups": [],
// "parent": null,
// "categories": [
// "winter_collection"
// ],
// "enabled": true,
// "values": {},
// "created": "2016-06-23T11:24:44+02:00",
// "updated": "2016-06-23T11:24:44+02:00",
// "associations": {}
// }
// ]
// }
// }
//
json := TJsonObject.Create;
json.LoadSb(sbJson);
v_linksSelfHref := json.StringOf('_links.self.href');
v_linksFirstHref := json.StringOf('_links.first.href');
current_page := json.IntOf('current_page');
i := 0;
count_i := json.SizeOfArray('_embedded.items');
while i < count_i do
begin
json.I := i;
v_linksSelfHref := json.StringOf('_embedded.items[i]._links.self.href');
identifier := json.StringOf('_embedded.items[i].identifier');
family := json.StringOf('_embedded.items[i].family');
parent := json.StringOf('_embedded.items[i].parent');
enabled := json.BoolOf('_embedded.items[i].enabled');
created := json.StringOf('_embedded.items[i].created');
updated := json.StringOf('_embedded.items[i].updated');
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].groups');
while j < count_j do
begin
json.J := j;
strVal := json.StringOf('_embedded.items[i].groups[j]');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].categories');
while j < count_j do
begin
json.J := j;
strVal := json.StringOf('_embedded.items[i].categories[j]');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.blocked');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.blocked[j].locale');
scope := json.StringOf('_embedded.items[i].values.blocked[j].scope');
data := json.BoolOf('_embedded.items[i].values.blocked[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.can_cut');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.can_cut[j].locale');
scope := json.StringOf('_embedded.items[i].values.can_cut[j].scope');
data := json.BoolOf('_embedded.items[i].values.can_cut[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.not_used');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.not_used[j].locale');
scope := json.StringOf('_embedded.items[i].values.not_used[j].scope');
data := json.BoolOf('_embedded.items[i].values.not_used[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.deny_delivery');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.deny_delivery[j].locale');
scope := json.StringOf('_embedded.items[i].values.deny_delivery[j].scope');
data := json.BoolOf('_embedded.items[i].values.deny_delivery[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.can_split_package');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.can_split_package[j].locale');
scope := json.StringOf('_embedded.items[i].values.can_split_package[j].scope');
data := json.BoolOf('_embedded.items[i].values.can_split_package[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.transfer_to_warehouse');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.transfer_to_warehouse[j].locale');
scope := json.StringOf('_embedded.items[i].values.transfer_to_warehouse[j].scope');
data := json.BoolOf('_embedded.items[i].values.transfer_to_warehouse[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.product_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.product_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.product_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.product_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.nuotrauka');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.nuotrauka[j].locale');
scope := json.StringOf('_embedded.items[i].values.nuotrauka[j].scope');
data_str := json.StringOf('_embedded.items[i].values.nuotrauka[j].data');
v_linksDownloadHref := json.StringOf('_embedded.items[i].values.nuotrauka[j]._links.download.href');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.minimum_quantity');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.minimum_quantity[j].locale');
scope := json.StringOf('_embedded.items[i].values.minimum_quantity[j].scope');
data_int := json.IntOf('_embedded.items[i].values.minimum_quantity[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.code[j].locale');
scope := json.StringOf('_embedded.items[i].values.code[j].scope');
data_int := json.IntOf('_embedded.items[i].values.code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.name');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.name[j].locale');
scope := json.StringOf('_embedded.items[i].values.name[j].scope');
data_str := json.StringOf('_embedded.items[i].values.name[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.fsc_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.fsc_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.fsc_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.fsc_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.warehouse');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.warehouse[j].locale');
scope := json.StringOf('_embedded.items[i].values.warehouse[j].scope');
data_str := json.StringOf('_embedded.items[i].values.warehouse[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.item_volume');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.item_volume[j].locale');
scope := json.StringOf('_embedded.items[i].values.item_volume[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.item_volume[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.item_volume[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.customs_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.customs_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.customs_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.customs_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.product_type');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.product_type[j].locale');
scope := json.StringOf('_embedded.items[i].values.product_type[j].scope');
data_str := json.StringOf('_embedded.items[i].values.product_type[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.weight_netto');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.weight_netto[j].locale');
scope := json.StringOf('_embedded.items[i].values.weight_netto[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.weight_netto[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.weight_netto[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.supplier_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.supplier_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.supplier_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.supplier_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.tariff_number');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.tariff_number[j].locale');
scope := json.StringOf('_embedded.items[i].values.tariff_number[j].scope');
data_str := json.StringOf('_embedded.items[i].values.tariff_number[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.weight_brutto');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.weight_brutto[j].locale');
scope := json.StringOf('_embedded.items[i].values.weight_brutto[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.weight_brutto[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.weight_brutto[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_code_1');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_code_1[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_code_1[j].scope');
data_str := json.StringOf('_embedded.items[i].values.package_code_1[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_code_2');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_code_2[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_code_2[j].scope');
data_str := json.StringOf('_embedded.items[i].values.package_code_2[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_code_3');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_code_3[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_code_3[j].scope');
data_str := json.StringOf('_embedded.items[i].values.package_code_3[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.supplier_number');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.supplier_number[j].locale');
scope := json.StringOf('_embedded.items[i].values.supplier_number[j].scope');
data_str := json.StringOf('_embedded.items[i].values.supplier_number[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_volume_1');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_volume_1[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_volume_1[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_volume_1[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_volume_1[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_volume_2');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_volume_2[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_volume_2[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_volume_2[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_volume_2[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_volume_3');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_volume_3[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_volume_3[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_volume_3[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_volume_3[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_weight_1');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_weight_1[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_weight_1[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_weight_1[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_weight_1[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_weight_2');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_weight_2[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_weight_2[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_weight_2[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_weight_2[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.package_weight_3');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.package_weight_3[j].locale');
scope := json.StringOf('_embedded.items[i].values.package_weight_3[j].scope');
dataAmount := json.StringOf('_embedded.items[i].values.package_weight_3[j].data.amount');
dataUnit := json.StringOf('_embedded.items[i].values.package_weight_3[j].data.unit');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.country_of_origin');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.country_of_origin[j].locale');
scope := json.StringOf('_embedded.items[i].values.country_of_origin[j].scope');
data_str := json.StringOf('_embedded.items[i].values.country_of_origin[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.product_group_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.product_group_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.product_group_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.product_group_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.base_measurement_unit');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.base_measurement_unit[j].locale');
scope := json.StringOf('_embedded.items[i].values.base_measurement_unit[j].scope');
data_str := json.StringOf('_embedded.items[i].values.base_measurement_unit[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.measurement_unit_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.measurement_unit_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.measurement_unit_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.measurement_unit_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.product_category_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.product_category_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.product_category_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.product_category_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.sale_measurement_unit');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.sale_measurement_unit[j].locale');
scope := json.StringOf('_embedded.items[i].values.sale_measurement_unit[j].scope');
data_str := json.StringOf('_embedded.items[i].values.sale_measurement_unit[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.country_of_origin_code');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.country_of_origin_code[j].locale');
scope := json.StringOf('_embedded.items[i].values.country_of_origin_code[j].scope');
data_str := json.StringOf('_embedded.items[i].values.country_of_origin_code[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.vat_registration_group');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.vat_registration_group[j].locale');
scope := json.StringOf('_embedded.items[i].values.vat_registration_group[j].scope');
data_str := json.StringOf('_embedded.items[i].values.vat_registration_group[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.critical_amount_of_stock');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.critical_amount_of_stock[j].locale');
scope := json.StringOf('_embedded.items[i].values.critical_amount_of_stock[j].scope');
data_str := json.StringOf('_embedded.items[i].values.critical_amount_of_stock[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.stock_registration_group');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.stock_registration_group[j].locale');
scope := json.StringOf('_embedded.items[i].values.stock_registration_group[j].scope');
data_str := json.StringOf('_embedded.items[i].values.stock_registration_group[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.purchase_measurement_unit');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.purchase_measurement_unit[j].locale');
scope := json.StringOf('_embedded.items[i].values.purchase_measurement_unit[j].scope');
data_str := json.StringOf('_embedded.items[i].values.purchase_measurement_unit[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.product_registration_group');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.product_registration_group[j].locale');
scope := json.StringOf('_embedded.items[i].values.product_registration_group[j].scope');
data_str := json.StringOf('_embedded.items[i].values.product_registration_group[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.base_measurement_unit_quantity');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.base_measurement_unit_quantity[j].locale');
scope := json.StringOf('_embedded.items[i].values.base_measurement_unit_quantity[j].scope');
data_str := json.StringOf('_embedded.items[i].values.base_measurement_unit_quantity[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.comment');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.comment[j].locale');
scope := json.StringOf('_embedded.items[i].values.comment[j].scope');
data_str := json.StringOf('_embedded.items[i].values.comment[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.units_in_pallet');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.units_in_pallet[j].locale');
scope := json.StringOf('_embedded.items[i].values.units_in_pallet[j].scope');
data_str := json.StringOf('_embedded.items[i].values.units_in_pallet[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.first_description');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.first_description[j].locale');
scope := json.StringOf('_embedded.items[i].values.first_description[j].scope');
data_str := json.StringOf('_embedded.items[i].values.first_description[j].data');
j := j + 1;
end;
j := 0;
count_j := json.SizeOfArray('_embedded.items[i].values.second_description');
while j < count_j do
begin
json.J := j;
locale := json.StringOf('_embedded.items[i].values.second_description[j].locale');
scope := json.StringOf('_embedded.items[i].values.second_description[j].scope');
data_str := json.StringOf('_embedded.items[i].values.second_description[j].data');
j := j + 1;
end;
i := i + 1;
end;
WriteLn('Success.');
http.Free;
sbJson.Free;
json.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.