I have an API that returns JSON (GNSS_DATA_JSON_RESPONSE) where the name of the arrays is unknown.
{
"68.59km": [
{
"MADTME": -0.001,
"MADNORTH": 6218548.988,
"ET": "2025/10/19 20:00:00",
"TMH": -0.021,
"TME": 0,
"MADHEIGHT": 156.647,
"MADEAST": 291048.02,
"UNIT": "68.59km",
"MADTMN": -0.016,
"TMN": -0.016,
"NORTH": 6218548.988,
"MADTMH": -0.02,
"HEIGHT": 156.647,
"EAST": 291048.021
}
],
"SS10": [
{
"MADTME": 0.204,
"MADNORTH": 6216587.545,
"ET": "2025/10/19 20:00:00",
"TMH": -0.438,
"TME": 0.203,
"MADHEIGHT": 240.364,
"MADEAST": 287820.887,
"UNIT": "SS10",
"MADTMN": -0.094,
"TMN": -0.093,
"NORTH": 6216587.546,
"MADTMH": -0.437,
"HEIGHT": 240.363,
"EAST": 287820.886
}
]
ForAll(
ColumnNames(ParseJSON(GNSS_DATA_JSON_RESPONSE)) As Unit,
With(
{A: Unit.Value},
Collect(
Coll_GNSS_LOG,
ForAll(
Table(ParseJSON(GNSS_DATA_JSON_RESPONSE).A),
{
MADTME: Value(Value.MADTME),
MADNORTH: Value(Value.MADNORTH),
ET: Text(Value.ET),
TMH: Value(Value.TMH),
TME: Value(Value.TME),
MADHEIGHT: Value(Value.MADHEIGHT),
MADEAST: Value(Value.MADEAST),
UNIT: Text(Value.UNIT),
MADTMN: Value(Value.MADTMN),
TMN: Value(Value.TMN),
NORTH: Value(Value.NORTH),
MADTMH: Value(Value.MADTMH),
HEIGHT: Value(Value.HEIGHT),
EAST: Value(Value.EAST)
}
)
)
)
);
I need to parse the JSON string and pull all of the parameters into a single collection. I can then filter by the "UNIT" parameter, which is the same as the parent name. This is the code I am using, but it just creates an empty collection. I seem to be going around in circles. Any help would be appreciated.