*------------------------------------------------
* using nfJsonRead to flatten object structures
*------------------------------------------------
Close Tables All
Public ojson
ojson = nfjsonread( getjson() )
*-- this cursor will get properties from multiple source objects - 2 properties from each taken as sample:
Create Cursor flattenSample ( ;
senderid c(10),receiverid c(10),;
msgtyp c(10),prtofrptng c(10),;
sbmtrtyp c(10),sbmtrcd c(10),;
modeoftrnsprt c(10),grosstonnage N(10,2),;
voyageno c(10) ,totalnooftrnsprteqmtmnfsted i )
Create Cursor shipitnry (;
shipitnryseq c(10),;
prtofcallcdd c(10),;
prtofcallname c(10) )
Select flattenSample
Append Blank
Gather Name ojson.headerfield
Gather Name ojson.Master.decref
Gather Name ojson.Master.authprsn
Gather Name ojson.Master.vesseldtls
Gather Name ojson.Master.voyagedtls
edit normal
* observe that only the last entry has all the shipitnry properties
* this is how "object patch" works in vfp using cursor rows
Select shipitnry
For Each oshipitnry In ojson.Master.voyagedtls.shipitnry
Append Blank
Gather Name oshipitnry
Endfor
browse normal
*--------------------------------------
Function getjson()
*--------------------------------------
TEXT TO cjson NOSHOW TEXTMERGE
{
"HeaderField": {
"senderID": "FARSHIPPING",
"receiverID": "INCCU1",
"versionNo": "1.1.0.2",
"indicator": "T",
"messageID": "SACHM23",
"sequenceOrControlNumber": "1234",
"date": "20190902",
"time": "18:59:39",
"reportingEvent": "SAM"
},
"master": {
"decRef": {
"msgTyp": "F",
"prtofRptng": "INCCU1",
"jobNo": 1234,
"jobDt": "20190902",
"mnfstNoRotnNo": 0,
"vesselTypMvmt": "C",
"dptrMnfstNo": 0
},
"authPrsn": {
"sbmtrTyp": "ASA",
"sbmtrCd": "ADSPD9028J",
"authReprsntvCd": "BXQPD10234",
"shpngLineCd": "AAFFH9326F",
"authSeaCarrierCd": "AAHFB9023F",
"trmnlOprtrCd": "INCCU1KKP1"
},
"vesselDtls": {
"modeOfTrnsprt": "1",
"grossTonnage": 0.000,
"netTonnage": 0
},
"voyageDtls": {
"voyageNo": "001",
"totalNoOfTrnsprtEqmtMnfsted": 4,
"briefCrgoDesc": "GENERAL CARGO",
"totalNmbrOfLines": 15,
"exptdDtAndTimeOfArvl": "20190829T9T12:51",
"nmbrOfPsngrsMnfsted": 0,
"nmbrOfCrewMnfsted": 0,
"shipItnry": [{
"shipItnrySeq": "-3"
},
{
"shipItnrySeq": "-2"
},
{
"shipItnrySeq": "-1",
"prtOfCallCdd": "LKCMB"
},
{
"shipItnrySeq": "0",
"prtOfCallCdd": "INCCU1",
"prtOfCallName": "KOLKAT"
}]
},
"mastrCnsgmtDec": [{
"MCRef": {
"lineNo": 1,
"mstrBlNo": "SCJUA37AA03388",
"mstrBlDt": "20190704",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"prevRef": {
},
"locCstm": {
"firstPrtOfEntry": "DEHAM",
"destPrt": "INCCU1PLP1",
"nxtPrtOfUnlading": "INCCU1",
"typOfCrgo": "IM",
"itemTyp": "OT",
"crgoMvmt": "LC",
"natrOfCrgo": "C",
"splitIndctr": "N",
"nmbrOfPkgs": 17.000000,
"typOfPackage": "PKG"
},
"trnshpr": {
"trnshprCd": "AAA25896Z0",
"trnshprBond": "2001009852"
},
"trnsprtDoc": {
"prtOfAcptCdd": "DEHAM",
"prtOfReceiptCdd": "INCCU1",
"cnsgnesName": "INDO TEEN CO",
"cnsgneStreetAddress": "9 MITRA LANEKOLKATA-700007 INDIA PH.9831000786",
"goodsDescAsPerBl": "4X20'GP S.T.C.DEFECTIVE TIN FREE STEEL COILS HS CODE:72105000 NET WEIGHT:101.523 KGS"
},
"trnsprtDocMsr": {
"nmbrOfPkgs": 17,
"typsOfPkgs": "PKG",
"marksNoOnPkgs": "N/M",
"grossWeight": 103223.000,
"netWeight": 0.000,
"grossVolume": 0.000,
"invoiceValueOfCnsgmt": 0.00
},
"itemDtls": [{
"crgoItemSeqNmbr": 1,
"hsCd": "0507 90",
"unoCd": "3077",
"imdgCd": "3",
"nmbrOfPkgs": 17,
"typOfPkgs": "PKG"
},
{
"crgoItemSeqNmbr": 2,
"hsCd": "0507 [Ex",
"unoCd": "3077",
"imdgCd": "3",
"nmbrOfPkgs": 10,
"typOfPkgs": "PKG"
}],
"trnsprtEqmt": [{
"eqmtSeqNo": 1,
"eqmtId": "GLDU5395861",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16898250",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 5
},
{
"eqmtSeqNo": 2,
"eqmtId": "TCKU1362860",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16898247",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 4
},
{
"eqmtSeqNo": 3,
"eqmtId": "TCLU7234919",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16898245",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 4
},
{
"eqmtSeqNo": 4,
"eqmtId": "TRHU1592710",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16898246",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 4
}],
"itnry": [{
"prtOfCallSeqNmbr": 1,
"prtOfCallCdd": "DEHAM",
"prtOfCallName": "HAMBURG",
"nxtPrtOfCallCdd": "INCCU",
"nxtPrtOfCallName": "KOLKATA"
},
{
"prtOfCallSeqNmbr": 2,
"prtOfCallCdd": "INCCU",
"prtOfCallName": "KOLKATA",
"nxtPrtOfCallCdd": "INCCU"
}],
"suplmntryDec": {
},
"houseCargoDec": [{
"crgoDecRef": {
"lineNo": 1,
"mstrBlNo": "HBL001",
"mstrBlDt": "20190704",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"trnsprtDoc": [{
}],
"itemDtls": [{
"eqmtSeqNo": 1,
"eqmtId": "CNTRNO-1-1",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 0
}],
"trnsprtEqmt": [{
}]
},
{
"crgoDecRef": {
"lineNo": 2,
"mstrBlNo": "HBL002",
"mstrBlDt": "20190704",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"trnsprtDoc": [{
"prtOfAcptCdd": "LKCMB",
"cnsgnrsName": "ABCD",
"cnsgnrStreetAddress": "COLOMBO",
"cnsgnesName": "XXXXXCONSIGNEE"
},
{
"prtOfAcptCdd": "SGSIN",
"cnsgnrsName": "SINGAPORE CONSIGNOR",
"cnsgnesName": "KOLKATA COSIGNEE"
}],
"itemDtls": [{
"eqmtSeqNo": 2,
"eqmtId": "CNTRNO-1-2",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 0
}],
"trnsprtEqmt": [{
}]
}]
},
{
"MCRef": {
"lineNo": 2,
"mstrBlNo": "SCJUA37AA03391",
"mstrBlDt": "20190704",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"prevRef": {
},
"locCstm": {
"firstPrtOfEntry": "DEHAM",
"destPrt": "INCCU1CPL2",
"nxtPrtOfUnlading": "INCCU1",
"typOfCrgo": "IM",
"itemTyp": "OT",
"crgoMvmt": "LC",
"natrOfCrgo": "C",
"splitIndctr": "N",
"nmbrOfPkgs": 10.000000,
"typOfPackage": "PKG"
},
"trnshpr": {
},
"trnsprtDoc": {
"prtOfAcptCdd": "DEHAM",
"prtOfReceiptCdd": "INCCU1",
"cnsgnesName": "INDO TEEN CO",
"cnsgneStreetAddress": "9 MITRA LANE KOLKATA,700007INDIA PH.9831000786",
"cnsgneCity": "KOLKATA",
"cnsgneCntrySubDivName": "WEST BENGA",
"cnsgneCntrySubDiv": "10",
"cnsgnePstcd": "700007",
"goodsDescAsPerBl": "2X20'GP S.T.C DEFECTIVE TIN FREE STEEL COILS HS CODE:72105000 NET WEIGHT:49692 KILOS"
},
"trnsprtDocMsr": {
"nmbrOfPkgs": 10,
"typsOfPkgs": "PKG",
"marksNoOnPkgs": "N/M",
"grossWeight": 50512.000,
"netWeight": 0.000,
"grossVolume": 0.000,
"invoiceValueOfCnsgmt": 0.00
},
"itemDtls": [{
"crgoItemSeqNmbr": 1,
"hsCd": "07, 09 o",
"nmbrOfPkgs": 10,
"typOfPkgs": "PKG"
},
{
"crgoItemSeqNmbr": 2,
"hsCd": "0802, 08",
"nmbrOfPkgs": 10,
"typOfPkgs": "PKG"
},
{
"crgoItemSeqNmbr": 3,
"hsCd": "10",
"nmbrOfPkgs": 10,
"typOfPkgs": "PKG"
}],
"trnsprtEqmt": [{
"eqmtSeqNo": 0,
"eqmtId": "TCKU3438645",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16899299",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 5
},
{
"eqmtSeqNo": 0,
"eqmtId": "TLLU8090373",
"eqmtTyp": "CN",
"eqmtSize": "2200",
"eqmtLoadStatus": "FCL",
"eqmtSealNmbr": "EU16899293",
"cntrAgntCd": "ADSPD9028J",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 5
}],
"itnry": [{
"prtOfCallSeqNmbr": 1,
"prtOfCallCdd": "DEHAM",
"prtOfCallName": "HAMBURG",
"nxtPrtOfCallCdd": "INCCU",
"nxtPrtOfCallName": "KOLKATA"
},
{
"prtOfCallSeqNmbr": 2,
"prtOfCallCdd": "INCCU",
"prtOfCallName": "KOLKATA",
"nxtPrtOfCallCdd": "INCCU"
}],
"suplmntryDec": {
},
"houseCargoDec": [{
"crgoDecRef": {
"lineNo": 1,
"mstrBlNo": "LINE-2-NO-1",
"mstrBlDt": "20190729",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"trnsprtDoc": [{
}],
"itemDtls": [{
"eqmtSeqNo": 1,
"eqmtId": "CNTRNO-2-1",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 0
}],
"trnsprtEqmt": [{
}]
},
{
"crgoDecRef": {
"lineNo": 2,
"mstrBlNo": "LINE-2-NO-2",
"mstrBlDt": "20190730",
"consolidatedIndctr": "S",
"prevDec": "N"
},
"trnsprtDoc": [{
}],
"itemDtls": [{
"eqmtSeqNo": 2,
"eqmtId": "CNTRNO-2-2",
"cntrWeight": 0.00,
"totalNmbrOfPkgs": 0
}],
"trnsprtEqmt": [{
}]
}]
}],
"prsnOnBoard": [{
"prsnOnBoardSeqNmbr": 1,
"prsnId": {
"prsnIdDocExpiryDt": "20000808",
"prsnIdOrTravelDocIss": "US",
"prsnIdOrTravelDocNmb": "S90006875",
"prsnIdOrTravelDocTyp": "980"
}
},
{
"prsnOnBoardSeqNmbr": 2,
"prsnId": {
"prsnIdDocExpiryDt": "20010810",
"prsnIdOrTravelDocIss": "TR",
"prsnIdOrTravelDocNmb": "T3456875",
"prsnIdOrTravelDocTyp": "980"
}
}],
"voyageTransportEquipment": {
},
"tmSuprtDocs": {
},
"tmAdtnlDec": {
}
},
"digSign": {
}
}
ENDTEXT
Return m.cjson