FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour JSON decode request
Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
JSON decode request
Posted: Wed Aug 27, 2025 08:55 PM

Hello Everyone!

I was wondering if someone could provide a sample PRG to decode each JSON message below. I tried to use hb_jsondecode() and view in XBROWSW but all the data loads to a single cell in XBROWSE. I need to be able to read each segment and details below we segment. I greatly appreciate your help!

JSON 1:

{

"FindRemRsp": {

"Header": [

  {

    "Remision": "X88603",

    "BundleBarcode": "E50560",

    "MaterialCode": "MDNOVPE000000C0003",

    "MaterialDescription": "4 1/2\" 15.77#RANDO-NOV 359R2PEND",

    "EndType": "1182",

    "EndTypeDesc": "PLAIN END",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031411884",

    "SalesOrderItem": "10",

    "CV": "326480",

    "Partida": "01",

    "OriginCode": "APRO",

    "OriginDescription": "ALMACEN DE PRODTO. TERM",

    "DestinationCode": "D1",

    "DestinationDescription": "APRO TAMSA",

    "RemissionSinceDate": "20250826",

    "RemissionSinceTime": "21462957",

    "FlatTruck": "PLAN99",

    "TotalPieces": "95",

    "TotalMeters": "935.680",

    "TotalKilograms": "22121.000",

    "Detail": [

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010322",

        "PipeNumber": "84535",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "234.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010280",

        "PipeNumber": "84557",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010268",

        "PipeNumber": "84558",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.870",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "692252010278",

        "PipeNumber": "84563",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "692252010259",

        "PipeNumber": "84567",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010269",

        "PipeNumber": "84570",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.820",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010267",

        "PipeNumber": "84572",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "192252010253",

        "PipeNumber": "84576",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "234.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010263",

        "PipeNumber": "84579",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010261",

        "PipeNumber": "84581",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010249",

        "PipeNumber": "84584",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010262",

        "PipeNumber": "84589",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.820",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010246",

        "PipeNumber": "84590",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010274",

        "PipeNumber": "84599",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010216",

        "PipeNumber": "84626",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010232",

        "PipeNumber": "84629",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010203",

        "PipeNumber": "84631",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010187",

        "PipeNumber": "84699",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010340",

        "PipeNumber": "84997",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029237073",

        "WipBatch": "67201",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010272",

        "PipeNumber": "84553",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010295",

        "PipeNumber": "84542",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "234.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010288",

        "PipeNumber": "84548",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010289",

        "PipeNumber": "84549",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "234.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010290",

        "PipeNumber": "84550",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010254",

        "PipeNumber": "84565",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "592252010260",

        "PipeNumber": "84566",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010245",

        "PipeNumber": "84568",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "592252010247",

        "PipeNumber": "84569",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.820",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010257",

        "PipeNumber": "84574",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010258",

        "PipeNumber": "84575",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010252",

        "PipeNumber": "84577",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "192252010248",

        "PipeNumber": "84583",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.820",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010251",

        "PipeNumber": "84586",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010250",

        "PipeNumber": "84587",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010255",

        "PipeNumber": "84588",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "592252010231",

        "PipeNumber": "84609",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238657",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010226",

        "PipeNumber": "84610",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238658",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010238",

        "PipeNumber": "84601",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238658",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010201",

        "PipeNumber": "84603",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238658",

        "WipBatch": "67366",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010281",

        "PipeNumber": "84555",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238668",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010244",

        "PipeNumber": "84624",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010164",

        "PipeNumber": "84667",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010184",

        "PipeNumber": "84669",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "692252010113",

        "PipeNumber": "84682",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "292252010138",

        "PipeNumber": "84685",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.870",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "592252010111",

        "PipeNumber": "84687",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010128",

        "PipeNumber": "84691",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010144",

        "PipeNumber": "84692",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010125",

        "PipeNumber": "84697",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010143",

        "PipeNumber": "84701",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010157",

        "PipeNumber": "84636",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.860",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010161",

        "PipeNumber": "84637",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "092252010159",

        "PipeNumber": "84643",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "192252010156",

        "PipeNumber": "84650",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "492252010166",

        "PipeNumber": "84653",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "192252010160",

        "PipeNumber": "84666",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010155",

        "PipeNumber": "84674",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.840",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010163",

        "PipeNumber": "84678",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "992252010162",

        "PipeNumber": "84679",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238669",

        "WipBatch": "67368",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "892252010158",

        "PipeNumber": "84680",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.850",

        "Kilograms": "233.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238686",

        "WipBatch": "67369",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "792252010108",

        "PipeNumber": "84707",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "232.000"

      },

      {

        "Remision": "X88603",

        "BundleBarcode": "E50560",

        "Bundle": "000029238686",

        "WipBatch": "67369",

        "MillId": "TAM",

        "MillOrder": "000449494",

        "MillOrderItem": "1",

        "TubeBarcode": "392252010107",

        "PipeNumber": "84721",

        "HeatNumber": "65402",

        "Pieces": "1",

        "Meters": "9.830",

        "Kilograms": "231.000"

      }

    ]

  }

]

},

"FindRemLog": {

"ProcessingResultCode": "1",

"MaximumLogItemSeverityCode": "1",

"LogItem": {

  "ErrorCode": "0",

  "ErrorDescription": "Consulta realizada exitosamente: Id.Remito",

  "SeverityCode": "1"

}

}

}

JSON 2:

{

"FindRFIDRsp": {

"Header": [

  {

    "ShipmentDocument": "89708",

    "ScheduleData": "20250826",

    "OutboundDelivery": "0107810225",

    "Remision": "827648",

    "FinalDestination": "CIENEGA DE FLORES,NL",

    "FinalCustomer": "X",

    "MaterialCode": "MCMECHAMONOT0C0615",

    "MaterialDescription": "80.40\" 15.00-9R-0146F-05MECHANICAL  TUB",

    "EndType": "1182",

    "EndTypeDesc": "PLAIN END",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031415790",

    "SalesOrderItem": "40",

    "CV": "327119",

    "Partida": "04",

    "OriginCode": "EE",

    "OriginDescription": "EMPRESAS RIGA S.A.",

    "RemissionSinceDate": "",

    "RemissionSinceTime": "",

    "CarrierCode": "999",

    "CarrierName": "TRANSPORTISTA DEL CLIENTE (MP)",

    "DriverName": "FEDERICO MARROQUIN",

    "Plate": "36UM5Z",

    "EconomicNr": "172"

  },

  {

    "ShipmentDocument": "89708",

    "ScheduleData": "20250826",

    "OutboundDelivery": "0107810226",

    "Remision": "827649",

    "FinalDestination": "CIENEGA DE FLORES,NL",

    "FinalCustomer": "X",

    "MaterialCode": "MCMECHAMONOT0C0873",

    "MaterialDescription": "76.20\" 6.35-5859933.MECHANICAL  TUBES .",

    "EndType": "1182",

    "EndTypeDesc": "PLAIN END",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031415790",

    "SalesOrderItem": "110",

    "CV": "327119",

    "Partida": "11",

    "OriginCode": "EE",

    "OriginDescription": "EMPRESAS RIGA S.A.",

    "RemissionSinceDate": "",

    "RemissionSinceTime": "",

    "CarrierCode": "999",

    "CarrierName": "TRANSPORTISTA DEL CLIENTE (MP)",

    "DriverName": "FEDERICO MARROQUIN",

    "Plate": "36UM5Z",

    "EconomicNr": "172"

  },

  {

    "ShipmentDocument": "89708",

    "ScheduleData": "20250826",

    "OutboundDelivery": "0107810227",

    "Remision": "827650",

    "FinalDestination": "CIENEGA DE FLORES,NL",

    "FinalCustomer": "X",

    "MaterialCode": "MCMECHAMONOT0C0874",

    "MaterialDescription": "76.20\" 6.35-6062535MECHANICAL  TUBES .",

    "EndType": "1182",

    "EndTypeDesc": "PLAIN END",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031415790",

    "SalesOrderItem": "160",

    "CV": "327119",

    "Partida": "16",

    "OriginCode": "EE",

    "OriginDescription": "EMPRESAS RIGA S.A.",

    "RemissionSinceDate": "",

    "RemissionSinceTime": "",

    "CarrierCode": "999",

    "CarrierName": "TRANSPORTISTA DEL CLIENTE (MP)",

    "DriverName": "FEDERICO MARROQUIN",

    "Plate": "36UM5Z",

    "EconomicNr": "172"

  },

  {

    "ShipmentDocument": "89708",

    "ScheduleData": "20250826",

    "OutboundDelivery": "0107810228",

    "Remision": "827651",

    "FinalDestination": "CIENEGA DE FLORES,NL",

    "FinalCustomer": "X",

    "MaterialCode": "MCMECHAMONOT0C0615",

    "MaterialDescription": "80.40\" 15.00-9R-0146F-05MECHANICAL  TUB",

    "EndType": "1182",

    "EndTypeDesc": "PLAIN END",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031415790",

    "SalesOrderItem": "210",

    "CV": "327119",

    "Partida": "21",

    "OriginCode": "EE",

    "OriginDescription": "EMPRESAS RIGA S.A.",

    "RemissionSinceDate": "",

    "RemissionSinceTime": "",

    "CarrierCode": "999",

    "CarrierName": "TRANSPORTISTA DEL CLIENTE (MP)",

    "DriverName": "FEDERICO MARROQUIN",

    "Plate": "36UM5Z",

    "EconomicNr": "172"

  }

]

},

"FindRFIDLog": {

"ProcessingResultCode": "0",

"MaximumLogItemSeverityCode": "1",

"LogItem": {

  "ErrorCode": "0",

  "ErrorDescription": "CONSULTA REALIZADA EXITOSAMENTE.",

  "SeverityCode": "1"

}

}

}

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Wed Aug 27, 2025 11:42 PM
Darrel, perhaps:
Function Inicio()
   LOCAL hJSon := MemoRead("_Data.json")    // ===> "_Data.json is your json data"
   hb_jsondecode( hJSon, @hJSon )
   aData01 := hJSon["FindRemRsp"]["Header"][1]["Detail"]
   xBrowse(aData01)
Return nil
Regards,

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Wed Aug 27, 2025 11:53 PM
#include "FiveWin.ch"

Function Inicio()
   LOCAL hJSon1 := MemoRead("_Data1.json")
   LOCAL hJSon2 := MemoRead("_Data2.json")

   hb_jsondecode( hJSon1, @hJSon1 )
   aData01 := hJSon1["FindRemRsp"]["Header"][1]["Detail"]
   xBrowse(aData01)

   hb_jsondecode( hJSon2, @hJSon2 )
   aData02 := hJSon2["FindRFIDRsp"]["Header"]
   xBrowse(aData02)
Return nil

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Thu Aug 28, 2025 12:03 AM

Hi Carlos, thank you for your response, however, that did not work, app crashed.

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Thu Aug 28, 2025 02:05 AM

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Thu Aug 28, 2025 03:38 AM

Hi Carlos,

Thank you. I was receiving data from web service and that is why it did not work. I saved to file then used MEMOREAD and it worked. Thanks!

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Thu Aug 28, 2025 04:05 AM
Darrell,
Thank you. I was receiving data from web service and that is why it did not work. I saved to file then used MEMOREAD and it worked. Thanks!
You're welcome

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Wed Sep 03, 2025 07:11 PM

Hi Carlos,

I was curious if you could help with another JSON as I am getting array error when trying to process message. Also, is there a way to contact you directly? I tried to send message via your website, but got an error.

{

"FindRemRsp": {

"Header": [

  {

    "Remision": "X91881",

    "BundleBarcode": "0",

    "MaterialCode": "CNP1104410000V0091",

    "MaterialDescription": "7 5/8\"29,70#R3SP-SM-P110-ICY-W441",

    "EndType": "2470",

    "EndTypeDesc": "TSH WEDGE 441",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0037089768",

    "SalesOrderItem": "2480",

    "CV": "326939",

    "Partida": "01",

    "OriginCode": "FAT2",

    "OriginDescription": "FABRICA DE TUBOS 2",

    "DestinationCode": "APRO",

    "DestinationDescription": "ALMACEN DE PRODTO. TERM",

    "RemissionSinceDate": "20250903",

    "RemissionSinceTime": "07285261",

    "FlatTruck": "PLAN06",

    "TotalPieces": "55",

    "TotalMeters": "743.240",

    "TotalKilograms": "32707.000",

    "Detail": [

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460374",

        "PipeNumber": "20070",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "601.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460375",

        "PipeNumber": "20057",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.250",

        "Kilograms": "589.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460376",

        "PipeNumber": "20065",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.420",

        "Kilograms": "594.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460377",

        "PipeNumber": "20068",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.340",

        "Kilograms": "590.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460378",

        "PipeNumber": "20095",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.100",

        "Kilograms": "575.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460379",

        "PipeNumber": "20050",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.320",

        "Kilograms": "592.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460380",

        "PipeNumber": "20056",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "606.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "290252460381",

        "PipeNumber": "20049",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.440",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460382",

        "PipeNumber": "20058",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.410",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460383",

        "PipeNumber": "20067",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.270",

        "Kilograms": "591.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460384",

        "PipeNumber": "20064",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.190",

        "Kilograms": "587.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "490252460385",

        "PipeNumber": "20060",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.290",

        "Kilograms": "591.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "590252460386",

        "PipeNumber": "20062",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.470",

        "Kilograms": "598.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460387",

        "PipeNumber": "20055",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.570",

        "Kilograms": "601.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "390252460388",

        "PipeNumber": "20072",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "601.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460389",

        "PipeNumber": "20061",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "12.690",

        "Kilograms": "562.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460390",

        "PipeNumber": "20048",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.430",

        "Kilograms": "596.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460391",

        "PipeNumber": "20053",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.510",

        "Kilograms": "602.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "390252460392",

        "PipeNumber": "20063",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.390",

        "Kilograms": "593.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "490252460393",

        "PipeNumber": "20051",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.530",

        "Kilograms": "602.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460394",

        "PipeNumber": "20054",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.330",

        "Kilograms": "591.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "290252460395",

        "PipeNumber": "20052",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.280",

        "Kilograms": "587.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460396",

        "PipeNumber": "20047",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.200",

        "Kilograms": "585.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "590252460397",

        "PipeNumber": "20045",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460398",

        "PipeNumber": "20046",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.300",

        "Kilograms": "585.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460399",

        "PipeNumber": "20066",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.430",

        "Kilograms": "596.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460400",

        "PipeNumber": "20027",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.670",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "290252460401",

        "PipeNumber": "20033",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "597.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460402",

        "PipeNumber": "20026",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "598.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460403",

        "PipeNumber": "20036",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "597.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460404",

        "PipeNumber": "20031",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "490252460405",

        "PipeNumber": "20025",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "596.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "590252460406",

        "PipeNumber": "20035",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "592.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460407",

        "PipeNumber": "20030",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "596.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "390252460408",

        "PipeNumber": "20021",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.330",

        "Kilograms": "584.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460409",

        "PipeNumber": "20041",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460410",

        "PipeNumber": "20029",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460411",

        "PipeNumber": "20044",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "596.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "390252460412",

        "PipeNumber": "20039",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.640",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "490252460413",

        "PipeNumber": "20043",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460414",

        "PipeNumber": "20024",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "598.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "290252460415",

        "PipeNumber": "20042",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "600.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460416",

        "PipeNumber": "20038",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "604.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "590252460417",

        "PipeNumber": "20028",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "591.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460418",

        "PipeNumber": "20037",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "619.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460419",

        "PipeNumber": "20034",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "190252460420",

        "PipeNumber": "20022",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "597.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "790252460421",

        "PipeNumber": "20032",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.480",

        "Kilograms": "590.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "990252460422",

        "PipeNumber": "20012",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.670",

        "Kilograms": "601.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "890252460423",

        "PipeNumber": "20013",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "599.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "090252460424",

        "PipeNumber": "20017",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.640",

        "Kilograms": "583.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "590252460425",

        "PipeNumber": "20016",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.650",

        "Kilograms": "595.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "490252460426",

        "PipeNumber": "20014",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "600.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "290252460427",

        "PipeNumber": "20015",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.660",

        "Kilograms": "594.000"

      },

      {

        "Remision": "X91881",

        "BundleBarcode": "0",

        "Bundle": "000014801410",

        "WipBatch": "46319",

        "MillId": "TAM",

        "MillOrder": "000450563",

        "MillOrderItem": "1",

        "TubeBarcode": "690252460428",

        "PipeNumber": "20009",

        "HeatNumber": "65990",

        "Pieces": "1",

        "Meters": "13.640",

        "Kilograms": "595.000"

      }

    ]

  }

]

},

"FindRemLog": {

"ProcessingResultCode": "1",

"MaximumLogItemSeverityCode": "1",

"LogItem": {

  "ErrorCode": "0",

  "ErrorDescription": "Consulta realizada exitosamente: Id.Remito",

  "SeverityCode": "1"

}

}

}

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Wed Sep 03, 2025 09:00 PM
Hi Darrell,

Copy your new data in "_Data3.json", and compile this new sample, it´s working fine.

Note that "_Data1.json" and "_Data3.json" share the same structure, whereas "_Data2.json" has some differences.
#include "FiveWin.ch"

Function Inicio()
LOCAL hJSon1 := MemoRead("_Data1.json")
LOCAL hJSon2 := MemoRead("_Data2.json")
LOCAL hJSon3 := MemoRead("_Data3.json")

hb_jsondecode( hJSon1, @hJSon1 )
//xBrowse(hJSon1, "hJSon1")
aData01 := hJSon1["FindRemRsp"]["Header"][1]["Detail"]
xBrowse(aData01, "aData01")

hb_jsondecode( hJSon2, @hJSon2 )
//xBrowse(hJSon2, "hJSon2")
aData02 := hJSon2["FindRFIDRsp"]["Header"]
xBrowse(aData02, "aData02")

hb_jsondecode( hJSon3, @hJSon3 )
//xBrowse(hJSon3, "hJSon3")
aData03 := hJSon3["FindRemRsp"]["Header"][1]["Detail"]
xBrowse(aData03, "aData03")

Return nil
Please contact me via cgallegoaecu [at] gmail [dot] com

Regards,

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Wed Sep 10, 2025 07:40 PM

Hello Everyone,

IF hb_HHasKey( hJSon1, "Header" ) is returning FALSE for the data below, can someone tell me what I am doing wrong?

{

"FindRemRsp": {

"Header": [

  {

    "Remision": "X93709",

    "BundleBarcode": "0",

    "MaterialCode": "TNT95BLUE0000C0005",

    "MaterialDescription": "3 1/2\" 9.20#R2T-SM-T95-TSH BLUE",

    "EndType": "709",

    "EndTypeDesc": "TSH BLUE",

    "PurchasingDocument": "",

    "PurchasingItem": "0",

    "SalesOrder": "0031411615",

    "SalesOrderItem": "50",

    "CV": "326609",

    "Partida": "12",

    "OriginCode": "FAT3",

    "OriginDescription": "FABRICA DE TUBOS 3",

    "DestinationCode": "APRO",

    "DestinationDescription": "ALMACEN DE PRODTO. TERM",

    "RemissionSinceDate": "20250908",

    "RemissionSinceTime": "10313483",

    "FlatTruck": "PLAN40",

    "TotalPieces": "240",

    "TotalMeters": "2318.560",

    "TotalKilograms": "30588.000",

    "Detail": [

      {

        "Remision": "X93709",

        "BundleBarcode": "0",

        "Bundle": "000002199814",

        "WipBatch": "25638",

        "MillId": "TAM",

        "MillOrder": "000450634",

        "MillOrderItem": "1",

        "TubeBarcode": "192252511273",

        "PipeNumber": "80093",

        "HeatNumber": "66377",

        "Pieces": "1",

        "Meters": "9.680",

        "Kilograms": "128.000"

      },

      {

        "Remision": "X93709",

        "BundleBarcode": "0",

        "Bundle": "000037719811",

        "WipBatch": "25639",

        "MillId": "TAM",

        "MillOrder": "000450634",

        "MillOrderItem": "1",

        "TubeBarcode": "492252511449",

        "PipeNumber": "81086",

        "HeatNumber": "66377",

        "Pieces": "1",

        "Meters": "9.670",

        "Kilograms": "128.000"

      },

      {

        "Remision": "X93709",

        "BundleBarcode": "0",

        "Bundle": "000066398211",

        "WipBatch": "25640",

        "MillId": "TAM",

        "MillOrder": "000450634",

        "MillOrderItem": "1",

        "TubeBarcode": "892252511512",

        "PipeNumber": "80150",

        "HeatNumber": "66377",

        "Pieces": "1",

        "Meters": "9.660",

        "Kilograms": "127.000"

      }

    ]

  }

]

},

"FindRemLog": {

"ProcessingResultCode": "1",

"MaximumLogItemSeverityCode": "1",

"LogItem": {

  "ErrorCode": "0",

  "ErrorDescription": "Consulta realizada exitosamente: Id.Remito",

  "SeverityCode": "1"

}

}

}

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: JSON decode request
Posted: Wed Sep 10, 2025 08:04 PM
Darrell,
iF hb_HHasKey( hJSon1["FindRemRsp"], "Header" )
or
iF hb_HHasKey( hJSon1["FindRFIDRsp"], "Header" )

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Wed Sep 10, 2025 08:13 PM

Hi Carlos,

Thank you so much! I sent an e-mail to you as well!

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 104
Joined: Tue Feb 09, 2021 04:20 PM
Re: JSON decode request
Posted: Wed Sep 10, 2025 11:38 PM
I create this function to show json content
Parameters are json decoded and a var name
result is a txt showing direct access
FUNCTION ShowJson( xHash, cTxtVariavel, cTxt, lPrimeiro )

   LOCAL xItem

   hb_Default( @cTxtVariavel, "Var" )
   hb_Default( @cTxt, "" )
   hb_Default( @lPrimeiro, .T. )

   IF ValType( xHash ) $ "NCDL" .OR. xHash == NIL
      cTxt += cTxtVariavel + " " + hb_ValToExp( xHash ) + hb_Eol()
   ELSEIF ValType( xHash ) == "A"
      FOR EACH xItem IN xHash
         ShowJson( xItem, cTxtVariavel + "[ " + Ltrim( Str( xItem:__EnumIndex ) ) + " ]", @cTxt, .F. )
      NEXT
   ELSEIF ValType( xHash ) == "H"
      FOR EACH xItem IN xHash
         ShowJson( xItem, cTxtVariavel + '[ "' + hb_hKeyAt( xHash, xItem:__EnumIndex ) + '" ]', @cTxt, .F. )
      NEXT
   ELSE
      cTxt += cTxtVariavel + "***** nao identificado ***" + hb_Eol()
   ENDIF
   IF lPrimeiro
      hb_MemoWrit( "showjson.txt", cTxt )
      RUN ( "cmd /c start showjson.txt" )
      ? "gravado showjson.txt"
      Inkey(10)
   ENDIF

   RETURN NIL
a routine to test
PROCEDURE Main

   LOCAL xData
   SetMode(33,100)
   CLS
   xData := hb_JsonDecode( MemoRead( "d:\temp\test.json" ) )
   ShowJson( xData, "xData" )

   RETURN
file used:
{
"FindRemRsp": {
"Header": [
{
"Remision": "X93709",
"BundleBarcode": "0",
"MaterialCode": "TNT95BLUE0000C0005",
"MaterialDescription": "3 1/2\" 9.20#R2T-SM-T95-TSH BLUE",
"EndType": "709",
"EndTypeDesc": "TSH BLUE",
"PurchasingDocument": "",
"PurchasingItem": "0",
"SalesOrder": "0031411615",
"SalesOrderItem": "50",
"CV": "326609",
"Partida": "12",
"OriginCode": "FAT3",
"OriginDescription": "FABRICA DE TUBOS 3",
"DestinationCode": "APRO",
"DestinationDescription": "ALMACEN DE PRODTO. TERM",
"RemissionSinceDate": "20250908",
"RemissionSinceTime": "10313483",
"FlatTruck": "PLAN40",
"TotalPieces": "240",
"TotalMeters": "2318.560",
"TotalKilograms": "30588.000",
"Detail": [
{
"Remision": "X93709",
"BundleBarcode": "0",
"Bundle": "000002199814",
"WipBatch": "25638",
"MillId": "TAM",
"MillOrder": "000450634",
"MillOrderItem": "1",
"TubeBarcode": "192252511273",
"PipeNumber": "80093",
"HeatNumber": "66377",
"Pieces": "1",
"Meters": "9.680",
"Kilograms": "128.000"
},
{
"Remision": "X93709",
"BundleBarcode": "0",
"Bundle": "000037719811",
"WipBatch": "25639",
"MillId": "TAM",
"MillOrder": "000450634",
"MillOrderItem": "1",
"TubeBarcode": "492252511449",
"PipeNumber": "81086",
"HeatNumber": "66377",
"Pieces": "1",
"Meters": "9.670",
"Kilograms": "128.000"
},
{
"Remision": "X93709",
"BundleBarcode": "0",
"Bundle": "000066398211",
"WipBatch": "25640",
"MillId": "TAM",
"MillOrder": "000450634",
"MillOrderItem": "1",
"TubeBarcode": "892252511512",
"PipeNumber": "80150",
"HeatNumber": "66377",
"Pieces": "1",
"Meters": "9.660",
"Kilograms": "127.000"
}
]
}
]
},
"FindRemLog": {
"ProcessingResultCode": "1",
"MaximumLogItemSeverityCode": "1",
"LogItem": {
"ErrorCode": "0",
"ErrorDescription": "Consulta realizada exitosamente: Id.Remito",
"SeverityCode": "1"
}
}
}
txt file result:
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Remision" ] "X93709"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "BundleBarcode" ] "0"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "MaterialCode" ] "TNT95BLUE0000C0005"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "MaterialDescription" ] '3 1/2" 9.20#R2T-SM-T95-TSH BLUE'
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "EndType" ] "709"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "EndTypeDesc" ] "TSH BLUE"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "PurchasingDocument" ] ""
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "PurchasingItem" ] "0"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "SalesOrder" ] "0031411615"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "SalesOrderItem" ] "50"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "CV" ] "326609"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Partida" ] "12"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "OriginCode" ] "FAT3"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "OriginDescription" ] "FABRICA DE TUBOS 3"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "DestinationCode" ] "APRO"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "DestinationDescription" ] "ALMACEN DE PRODTO. TERM"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "RemissionSinceDate" ] "20250908"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "RemissionSinceTime" ] "10313483"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "FlatTruck" ] "PLAN40"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "TotalPieces" ] "240"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "TotalMeters" ] "2318.560"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "TotalKilograms" ] "30588.000"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "Remision" ] "X93709"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "BundleBarcode" ] "0"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "Bundle" ] "000002199814"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "WipBatch" ] "25638"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "MillId" ] "TAM"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "MillOrder" ] "000450634"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "MillOrderItem" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "TubeBarcode" ] "192252511273"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "PipeNumber" ] "80093"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "HeatNumber" ] "66377"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "Pieces" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "Meters" ] "9.680"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 1 ][ "Kilograms" ] "128.000"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "Remision" ] "X93709"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "BundleBarcode" ] "0"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "Bundle" ] "000037719811"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "WipBatch" ] "25639"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "MillId" ] "TAM"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "MillOrder" ] "000450634"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "MillOrderItem" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "TubeBarcode" ] "492252511449"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "PipeNumber" ] "81086"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "HeatNumber" ] "66377"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "Pieces" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "Meters" ] "9.670"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 2 ][ "Kilograms" ] "128.000"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "Remision" ] "X93709"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "BundleBarcode" ] "0"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "Bundle" ] "000066398211"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "WipBatch" ] "25640"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "MillId" ] "TAM"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "MillOrder" ] "000450634"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "MillOrderItem" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "TubeBarcode" ] "892252511512"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "PipeNumber" ] "80150"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "HeatNumber" ] "66377"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "Pieces" ] "1"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "Meters" ] "9.660"
xData[ "FindRemRsp" ][ "Header" ][ 1 ][ "Detail" ][ 3 ][ "Kilograms" ] "127.000"
xData[ "FindRemLog" ][ "ProcessingResultCode" ] "1"
xData[ "FindRemLog" ][ "MaximumLogItemSeverityCode" ] "1"
xData[ "FindRemLog" ][ "LogItem" ][ "ErrorCode" ] "0"
xData[ "FindRemLog" ][ "LogItem" ][ "ErrorDescription" ] "Consulta realizada exitosamente: Id.Remito"
xData[ "FindRemLog" ][ "LogItem" ][ "SeverityCode" ] "1"

José M. C. Quintas Brazil

gtwvg, fivewin 25.12, hwgui, mingw 15.2 (32 bits)

Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: JSON decode request
Posted: Thu Sep 11, 2025 02:53 PM

Thank you Jose!

How do check if there is hash key for the following:

aData02 := hJSon1["FindRFIDRsp"]["Header"][1]["Detail"]

I am getting an error now for the following code:

IF (! EMPTY(hJson1))

IF hb_HHasKey( hJSon1["FindRemRsp"], "Header" ) <------------------------------------ HERE

                    aData01 := hJSon1["FindRemRsp"]["Header"][1]

                    aData02 := hJSon1["FindRemRsp"]["Header"][1]["Detail"]

        ENDIF

ENDIF

Application

===========

Path and name: C:\web\tenaris\tenaris.exe (32 bits)

Size: 4,824,064 bytes

Compiler version: Harbour 3.2.0dev (r1801051438)

FiveWin version: FWH 22.03

C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)

Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 10 secs

Error occurred at: 09/11/2025, 09:33:26

Error description: Error BASE/1123 Argument error: HB_HHASKEY

Args:

 [   1] = U

 [   2] = C   Header
*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: JSON decode request
Posted: Thu Sep 11, 2025 03:19 PM
JSON
JSON is a data format that stores information in a hierarchical structure of objects (key–value pairs) and arrays (lists of elements). To make the data easier to view, the nested structure can be transformed into a flat table form: in the PATH column you see the full key path to the value, in TYPE the data type (e.g. text, number, date, true/false), and in VALUE the actual content. This way all keys and values of a JSON—regardless of nesting depth—can be easily read, searched, and compared.

JSON is a format that stores data in nested structures. By representing it in a table with PATH, TYPE, and VALUE, all keys and values—regardless of depth—become clearly visible. This allows the content to be quickly read, searched, and compared.

JSON can be nested to any depth:

Objects in objects
Arrays in objects
Objects in arrays … and so on.

```json
{
"Header": [
{
"Remision": "X93709",
"Detail": [
{ "TubeBarcode": "192252511273", "Meters": "9.680" },
{ "TubeBarcode": "492252511449", "Meters": "9.670" }
]
}
]
}
```

If you read this with `hb_jsonDecode()`:

```harbour
LOCAL h
hb_jsonDecode( MemoRead( "sample.json" ), @h )

? ValType( h ) // "H" (Hash)
? ValType( h["Header"] ) // "A" (Array)
? ValType( h["Header"][1] ) // "H" (Hash)
? ValType( h["Header"][1]["Detail"] ) // "A"
? ValType( h["Header"][1]["Detail"][1] ) // "H"
```

➡️ Here you have multiple levels:
Hash → Array → Hash → Array → Hash.

---

### JSON – Quick Overview

**JSON (JavaScript Object Notation)** is a lightweight format for representing structured data.
It essentially consists of two building blocks:

* **Objects**: in curly braces `{ ... }`, containing key–value pairs.
Example:

```json
{ "Remision": "X93709", "CV": 326609 }
```

* **Arrays (lists)**: in square brackets `[ ... ]`, containing multiple values or objects.
Example:

```json
[ { "PipeNumber": "80093" }, { "PipeNumber": "80150" } ]
```

These elements can be nested arbitrarily: objects contain arrays, arrays contain objects, and so on.

---

### Table Representation

To display JSON clearly, the nested structure can be transformed into a flat table form:

* **PATH**
Shows the full key path to the value.
Example:
`FindRemRsp.Header[1].Detail[3].TubeBarcode`

* **TYPE**
Specifies the data type, e.g.
`C = Character string, N = Number, D = Date, L = True/False, H = Object, A = Array`.

* **VALUE**
The actual content. For simple values it is shown directly, for more complex structures (objects, arrays) in compact JSON form.

---

### Advantages of this Representation

* All keys and values are visible at a glance—regardless of nesting depth.
* Paths clearly show where in the JSON a value is located.
* Values can be easily searched, sorted, and compared.
* Even complex responses from interfaces (e.g. REST APIs) can be quickly analyzed.

👉 This makes the method ideal for analysis and debugging: even deeply nested JSON data can be transparently understood in a simple table.



/* JsonFlattenBrowse.prg – JSON rekursiv in 2D-Array für XBROWSE */

PROCEDURE Main()
  LOCAL cJsonFile := "c:\fwh\samples\sample.json"
  LOCAL xRoot, aRows := {}, aCols := { "PATH", "TYPE", "VALUE" }
  cJson := ""

   cJson := memoread(cJsonFile)
   hb_jsonDecode( cJson, @xRoot )
   
   // Rekursiv auflösen → aRows füllen
   JsonFlattenToRows( xRoot, "", @aRows )

   // Optional: sortieren nach PATH
   ASort( aRows, , , {|a,b| a[1] < b[1] } )

   // Anzeigen
   XBROWSE( aRows ) 

   InKey(0)
RETURN

/* Rekursiv: fĂĽllt aRows mit { cPath, cType, cValue } */
FUNCTION JsonFlattenToRows( x, cPath, aRows )
   LOCAL i, v, cKey, cNextPath

   DO CASE
   CASE ValType( x ) == "H"                   // Hash/Object
      FOR EACH v IN x
         cKey      := hb_HKeyAt( x, v:__EnumIndex )
         cNextPath := IIF( Empty( cPath ), cKey, cPath + "." + cKey )
         JsonFlattenToRows( v, cNextPath, @aRows )
      NEXT

   CASE ValType( x ) == "A"                   // Array
      FOR i := 1 TO Len( x )
         cNextPath := cPath + "[" + LTrim(Str(i)) + "]"
         JsonFlattenToRows( x[i], cNextPath, @aRows )
      NEXT

   OTHERWISE                                  // Skalar
      AAdd( aRows, { cPath, ValType( x ), JF_ToString( x ) } )
   ENDCASE
RETURN NIL

/* Werte hĂĽbsch in String wandeln (Skalare); Strukturen kompakt als JSON */
FUNCTION JF_ToString( v )
   LOCAL t := ValType( v )
   DO CASE
   CASE t == "C" ; RETURN v
   CASE t == "N" ; RETURN LTrim( Str( v ) )
   CASE t == "D" ; RETURN DToC( v )
   CASE t == "L" ; RETURN IIF( v, ".T.", ".F." )
   CASE t == "U" ; RETURN ""
   CASE t $ "HA" ; RETURN hb_jsonEncode( v )   // falls hier doch Struktur ankommt
   OTHERWISE     ; RETURN hb_ValToExp( v )
   ENDCASE