DataFlex
DataFlex
Swap JSON Objects
See more JSON Examples
Demonstrates how to swap two JSON objects within a JSON document.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Integer iIndex1
Integer iIndex2
Variant vJsonSara
Handle hoJsonSara
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
// Load the following JSON:
// {
// "petter": {
// "DOB": "26/02/1986",
// "gender": "male",
// "country": "US"
// },
// "Sara": {
// "DOB": "13/05/1982",
// "gender": "female",
// "country": "FR"
// },
// "Jon": {
// "DOB": "19/03/1984",
// "gender": "male",
// "country": "UK"
// }
// }
Get ComLoadFile Of hoJson "qa_data/json/people.json" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoJson To sTemp1
Showln sTemp1
Procedure_Return
End
// Swap the positions of Jon and Sara.
Get ComIndexOf Of hoJson "Jon" To iIndex1
Get ComIndexOf Of hoJson "Sara" To iIndex2
Get ComSwap Of hoJson iIndex1 iIndex2 To iSuccess
// We have this now:
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// {
// "petter": {
// "DOB": "26/02/1986",
// "gender": "male",
// "country": "US"
// },
// "Jon": {
// "DOB": "19/03/1984",
// "gender": "male",
// "country": "UK"
// },
// "Sara": {
// "DOB": "13/05/1982",
// "gender": "female",
// "country": "FR"
// }
// }
// To swap an inner member:
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonSara
If (Not(IsComObjectCreated(hoJsonSara))) Begin
Send CreateComObject of hoJsonSara
End
Get pvComObject of hoJsonSara to vJsonSara
Get ComObjectOf2 Of hoJson "Sara" vJsonSara To iSuccess
Get ComIndexOf Of hoJsonSara "DOB" To iIndex1
Get ComIndexOf Of hoJsonSara "country" To iIndex2
Get ComSwap Of hoJsonSara iIndex1 iIndex2 To iSuccess
// We now have this:
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// {
// "petter": {
// "DOB": "26/02/1986",
// "gender": "male",
// "country": "US"
// },
// "Jon": {
// "DOB": "19/03/1984",
// "gender": "male",
// "country": "UK"
// },
// "Sara": {
// "country": "FR",
// "gender": "female",
// "DOB": "13/05/1982"
// }
// }
End_Procedure