Here I have created a type to use json_populate_recordset function .
CREATE TYPE Visits_type AS
(facilityId varchar,patientId varchar,encounterId numeric,patientClass varchar,admnDate varchar,dischargeDate varchar,practitionerId varchar,
careLocationType varchar,careLocationCode varchar,specialtyCode varchar,status varchar,admitPractitionerId varchar,hpSeqNo varchar,admissionType varchar,assignedRoom varchar,assignedBed varchar,
Firstname varchar,
Patientname varchar,
Firstnamelocal varchar,
Patientnamelocal varchar,
sex varchar,
Dob varchar,
Mobilenumber varchar,
Emailid varchar,
RegnFacilityid varchar);
following Sample sql and json is used:
SELECT * from json_populate_recordset(null::Visits_type, '[
{
"facilityId": "10","patientId": "GH00000940","encounterId": 100011770001,"patientClass": "OP","admnDate": "2015-05-17 17:25","dischargeDate": null,"practitionerId": "ALLEN","careLocationType": "C","careLocationCode": "CL11","specialtyCode": "SP11", "status": "E", "admitPractitionerId": null, "hpSeqNo": 3796, "admissionType": "First Visit", "assignedRoom": "R1", "assignedBed": null, "firstName": "Suresh", "patientName": "Suresh Machwal", "firstNameLocal": null, "patientNameLocal": null, "sex": "M", "dob": "1970-05-17", "mobileNumber": null, "emailId": null, "regnFacilityId": "GH" }, {
"facilityId": "10",
"patientId": "GH00000940",
"encounterId": 100011770001,
"patientClass": "OP",
"admnDate": "2015-05-17 17:25",
"dischargeDate": null,
"practitionerId": "ALLEN",
"careLocationType": "C",
"careLocationCode": "CL11",
"specialtyCode": "SP11",
"status": "E",
"admitPractitionerId": null,
"hpSeqNo": 3795,
"admissionType": "First Visit",
"assignedRoom": "R1",
"assignedBed": null,
"firstName": "Suresh",
"patientName": "Suresh Machwal",
"firstNameLocal": null,
"patientNameLocal": null,
"sex": "M",
"dob": "1970-05-17",
"mobileNumber": null,
"emailId": null,
"regnFacilityId": "GH"
}]');
The issue is that its returning null values for all the fields, except for then dob, status and sex.