Page 1 of 2

JSON decode request

Posted: Wed Aug 27, 2025 8:55 pm
by cdmmaui
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"
}
}
}

Re: JSON decode request

Posted: Wed Aug 27, 2025 11:42 pm
by Cgallegoa
Darrel, perhaps:

Code: Select all | Expand

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,

Re: JSON decode request

Posted: Wed Aug 27, 2025 11:53 pm
by Cgallegoa

Code: Select all | Expand

#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

Re: JSON decode request

Posted: Thu Aug 28, 2025 12:03 am
by cdmmaui
Hi Carlos, thank you for your response, however, that did not work, app crashed.

Re: JSON decode request

Posted: Thu Aug 28, 2025 2:05 am
by Cgallegoa
Darrell, sample code and exe working:

https://mega.nz/file/B7sGSYoR#RcyWITA55 ... pzPMiUdlbo

Re: JSON decode request

Posted: Thu Aug 28, 2025 3:38 am
by cdmmaui
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!

Re: JSON decode request

Posted: Thu Aug 28, 2025 4:05 am
by Cgallegoa
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

Re: JSON decode request

Posted: Wed Sep 03, 2025 7:11 pm
by cdmmaui
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"
}
}
}

Re: JSON decode request

Posted: Wed Sep 03, 2025 9:00 pm
by Cgallegoa
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.

Code: Select all | Expand

#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,

Re: JSON decode request

Posted: Wed Sep 10, 2025 7:40 pm
by cdmmaui
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"
}
}
}

Re: JSON decode request

Posted: Wed Sep 10, 2025 8:04 pm
by Cgallegoa
Darrell,

Code: Select all | Expand

iF hb_HHasKey( hJSon1["FindRemRsp"], "Header" )
or

Code: Select all | Expand

iF hb_HHasKey( hJSon1["FindRFIDRsp"], "Header" )

Re: JSON decode request

Posted: Wed Sep 10, 2025 8:13 pm
by cdmmaui
Hi Carlos,

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

Re: JSON decode request

Posted: Wed Sep 10, 2025 11:38 pm
by JoséQuintas
I create this function to show json content
Parameters are json decoded and a var name
result is a txt showing direct access

Code: Select all | Expand


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

Code: Select all | Expand

PROCEDURE Main

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

   RETURN
file used:

Code: Select all | Expand

{
"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:

Code: Select all | Expand

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"

Re: JSON decode request

Posted: Thu Sep 11, 2025 2:53 pm
by cdmmaui
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

Re: JSON decode request

Posted: Thu Sep 11, 2025 3:19 pm
by Otto
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.



Code: Select all | Expand

/* 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



Image