Sample code for 30+ languages & platforms
Delphi DLL

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 Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, StringBuilder, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
http: HCkHttp;
sbJson: HCkStringBuilder;
json: HCkJsonObject;
v_linksSelfHref: PWideChar;
v_linksFirstHref: PWideChar;
current_page: Integer;
i: Integer;
count_i: Integer;
identifier: PWideChar;
family: PWideChar;
parent: PWideChar;
enabled: Boolean;
created: PWideChar;
updated: PWideChar;
j: Integer;
count_j: Integer;
strVal: PWideChar;
locale: PWideChar;
scope: PWideChar;
data: Boolean;
data_str: PWideChar;
v_linksDownloadHref: PWideChar;
data_int: Integer;
dataAmount: PWideChar;
dataUnit: PWideChar;

begin
success := False;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

http := CkHttp_Create();

// Use your previously obtained access token.
// See Get Akeneo Access Token
CkHttp_putAuthToken(http,'access_token');

sbJson := CkStringBuilder_Create();
success := CkHttp_QuickGetSb(http,'http://pim.my-akeneo-site.com/api/rest/v1/products',sbJson);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkHttp__lastHeader(http));
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    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 := CkJsonObject_Create();
CkJsonObject_LoadSb(json,sbJson);

v_linksSelfHref := CkJsonObject__stringOf(json,'_links.self.href');
v_linksFirstHref := CkJsonObject__stringOf(json,'_links.first.href');
current_page := CkJsonObject_IntOf(json,'current_page');
i := 0;
count_i := CkJsonObject_SizeOfArray(json,'_embedded.items');
while i < count_i do
  begin
    CkJsonObject_putI(json,i);
    v_linksSelfHref := CkJsonObject__stringOf(json,'_embedded.items[i]._links.self.href');
    identifier := CkJsonObject__stringOf(json,'_embedded.items[i].identifier');
    family := CkJsonObject__stringOf(json,'_embedded.items[i].family');
    parent := CkJsonObject__stringOf(json,'_embedded.items[i].parent');
    enabled := CkJsonObject_BoolOf(json,'_embedded.items[i].enabled');
    created := CkJsonObject__stringOf(json,'_embedded.items[i].created');
    updated := CkJsonObject__stringOf(json,'_embedded.items[i].updated');
    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].groups');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        strVal := CkJsonObject__stringOf(json,'_embedded.items[i].groups[j]');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].categories');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        strVal := CkJsonObject__stringOf(json,'_embedded.items[i].categories[j]');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.blocked');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.blocked[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.blocked[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.blocked[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.can_cut');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.can_cut[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.can_cut[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.can_cut[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.not_used');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.not_used[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.not_used[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.not_used[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.deny_delivery');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.deny_delivery[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.deny_delivery[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.deny_delivery[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.can_split_package');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.can_split_package[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.can_split_package[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.can_split_package[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.transfer_to_warehouse');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.transfer_to_warehouse[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.transfer_to_warehouse[j].scope');
        data := CkJsonObject_BoolOf(json,'_embedded.items[i].values.transfer_to_warehouse[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.product_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.nuotrauka');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.nuotrauka[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.nuotrauka[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.nuotrauka[j].data');
        v_linksDownloadHref := CkJsonObject__stringOf(json,'_embedded.items[i].values.nuotrauka[j]._links.download.href');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.minimum_quantity');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.minimum_quantity[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.minimum_quantity[j].scope');
        data_int := CkJsonObject_IntOf(json,'_embedded.items[i].values.minimum_quantity[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.code[j].scope');
        data_int := CkJsonObject_IntOf(json,'_embedded.items[i].values.code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.name');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.name[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.name[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.name[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.fsc_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.fsc_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.fsc_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.fsc_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.warehouse');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.warehouse[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.warehouse[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.warehouse[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.item_volume');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.item_volume[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.item_volume[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.item_volume[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.item_volume[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.customs_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.customs_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.customs_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.customs_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.product_type');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_type[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_type[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_type[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.weight_netto');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_netto[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_netto[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_netto[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_netto[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.supplier_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.tariff_number');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.tariff_number[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.tariff_number[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.tariff_number[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.weight_brutto');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_brutto[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_brutto[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_brutto[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.weight_brutto[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_code_1');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_1[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_1[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_1[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_code_2');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_2[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_2[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_2[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_code_3');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_3[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_3[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_code_3[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.supplier_number');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_number[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_number[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.supplier_number[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_volume_1');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_1[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_1[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_1[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_1[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_volume_2');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_2[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_2[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_2[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_2[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_volume_3');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_3[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_3[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_3[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_volume_3[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_weight_1');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_1[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_1[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_1[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_1[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_weight_2');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_2[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_2[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_2[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_2[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.package_weight_3');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_3[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_3[j].scope');
        dataAmount := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_3[j].data.amount');
        dataUnit := CkJsonObject__stringOf(json,'_embedded.items[i].values.package_weight_3[j].data.unit');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.country_of_origin');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.product_group_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_group_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_group_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_group_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.base_measurement_unit');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.measurement_unit_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.measurement_unit_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.measurement_unit_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.measurement_unit_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.product_category_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_category_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_category_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_category_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.sale_measurement_unit');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.sale_measurement_unit[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.sale_measurement_unit[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.sale_measurement_unit[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.country_of_origin_code');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin_code[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin_code[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.country_of_origin_code[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.vat_registration_group');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.vat_registration_group[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.vat_registration_group[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.vat_registration_group[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.critical_amount_of_stock');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.critical_amount_of_stock[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.critical_amount_of_stock[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.critical_amount_of_stock[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.stock_registration_group');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.stock_registration_group[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.stock_registration_group[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.stock_registration_group[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.purchase_measurement_unit');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.purchase_measurement_unit[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.purchase_measurement_unit[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.purchase_measurement_unit[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.product_registration_group');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_registration_group[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_registration_group[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.product_registration_group[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.base_measurement_unit_quantity');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit_quantity[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit_quantity[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.base_measurement_unit_quantity[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.comment');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.comment[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.comment[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.comment[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.units_in_pallet');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.units_in_pallet[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.units_in_pallet[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.units_in_pallet[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.first_description');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.first_description[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.first_description[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.first_description[j].data');
        j := j + 1;
      end;

    j := 0;
    count_j := CkJsonObject_SizeOfArray(json,'_embedded.items[i].values.second_description');
    while j < count_j do
      begin
        CkJsonObject_putJ(json,j);
        locale := CkJsonObject__stringOf(json,'_embedded.items[i].values.second_description[j].locale');
        scope := CkJsonObject__stringOf(json,'_embedded.items[i].values.second_description[j].scope');
        data_str := CkJsonObject__stringOf(json,'_embedded.items[i].values.second_description[j].data');
        j := j + 1;
      end;

    i := i + 1;
  end;

Memo1.Lines.Add('Success.');

CkHttp_Dispose(http);
CkStringBuilder_Dispose(sbJson);
CkJsonObject_Dispose(json);

end;