Para tratar JSON una buena opción es la librería uLkJSON.
Ejemplo:
Código Delphi
[-]
procedure TDMDHL.NuevoPaquete(typeCode: string; weight, Length, Width, Height: double; customerReference_value, customerReference_typeCode, description, labelDescription: string);
var
content, package, dimensions, customerReference : TlkJSONobject;
packages, customerReferences : TlkJSONlist;
begin
if Envio.Field['content'] <> nil then
content := TlkJSONobject(Envio.Field['content'])
else
begin
content := TlkJSONobject.Create;
Envio.Add('content', content);
end;
if content.Field['packages'] <> nil then
packages := TlkJSONlist(content.Field['packages'])
else
begin
packages := TlkJSONlist.Create;
content.Add('packages', packages);
end;
package := TlkJSONobject.Create;
packages.Add(package);
if Trim(typeCode) > '' then
package.Add('typeCode', typeCode);
package.Add('weight', weight);
dimensions := TlkJSONobject.Create;
package.Add('dimensions', dimensions);
dimensions.Add('length', Length);
dimensions.Add('width', Width);
dimensions.Add('height', Height);
[...]