open-force / jsonparse

Apex JSON parser to make it easier to extract information from nested JSON structures
MIT License
137 stars 30 forks source link

Exists() shows false when looking at a array in array. #7

Closed jdaustin000 closed 1 year ago

jdaustin000 commented 2 years ago

When doing an exists check on a value that is in a array which is in a array, the exists() always shows as false. Same example:

string jsonString = '{"EnergyStar":[{"DatasetName":"ENERGY-STAR-Certified-Room-Air-Conditioners","DatasetIdentifier":"rg68-9xmm","json_Record":[{"pd_id":"2329535","brand_name":"LG","model_number":"LW1517IVSM"}]},{"DatasetName":"ENERGY-STAR-Most-Efficient-Room-Air-Conditioners","DatasetIdentifier":"8cpb-z7gc","json_Record":[{"pd_id":"2329535","brand_name":"LG","model_number":"LW1517IVSM"}]},{"DatasetName":"ENERGY-STAR-Certified-Products-Non-lighting","DatasetIdentifier":"8wj2-sec8","json_Record":[{"pd_id":"2329535","brand_name":"LG","model_number":"LW1517IVSM"}]}]}'; JSONParse root = new JSONParse(jsonString); string nodeToGet = 'EnergyStar.[0].json_Record.[0].model_number'; system.debug(loggingLevel.ERROR,'nodeToGet: ' + nodeToGet); boolean nodeExist = root.exists(nodeToGet); system.debug(loggingLevel.ERROR,'nodeExist: ' + nodeExist); string valToReturn = root.get(nodeToGet).getStringValue(); system.debug(loggingLevel.ERROR,'valToReturn: ' + valToReturn);

grekker commented 1 year ago

Thank you for the report. Fixed by 69da320c172da34d4112835509184a31ce500f80.