/* Include the necessary namespace for JsonArray */
USING Progress.Json.ObjectModel.*.
DEFINE TEMP-TABLE ttFruit
  FIELD fruit    AS CHARACTER  .
DEFINE VARIABLE cCharExtent AS character  NO-UNDO extent 4 INITIAL ["Apple","Banana","Cherry","Date"].
DEFINE VARIABLE oJsonArray  AS JsonArray NO-UNDO.
DEFINE VARIABLE iArrayLength AS INTEGER   NO-UNDO.
procedure charExtentToTT PRIVATE:
    DEFINE input parameter cCharExtent as character no-undo extent.
    DEFINE VARIABLE iLoop as integer no-undo.
    do iLoop = 1 to extent(cCharExtent):
        create ttFruit.
        Assign ttFruit.fruit = cCharExtent[iLoop].
    end.
    return.
end procedure.
run charExtentToTT (input  cCharExtent).
oJsonArray = NEW JsonArray().
oJsonArray:Read(TEMP-TABLE ttFruit:HANDLE).
/* Get the length of the JSON array */
iArrayLength = oJsonArray:Length.
MESSAGE "The length of the JSON array is:" iArrayLength
    VIEW-AS ALERT-BOX./* Include the necessary namespace for JsonArray */
USING Progress.Json.ObjectModel.*.
DEFINE VARIABLE myParser AS ObjectModelParser NO-UNDO.
DEFINE VARIABLE oJsonArray  AS JsonArray NO-UNDO.
DEFINE VARIABLE iArrayLength AS INTEGER   NO-UNDO.
DEFINE VARIABLE myJsonString AS CHARACTER INITIAL  '["Apple","Banana","Cherry","Date"]'.
myParser = NEW ObjectModelParser().
oJsonArray = CAST(myParser:Parse(myJsonString ), JsonArray).
/* Get the length of the JSON array */
iArrayLength = oJsonArray:Length.
MESSAGE "The length of the JSON array is:" iArrayLength
    VIEW-AS ALERT-BOX.