DataFlex
DataFlex
Create more Complex JSON Document
See more JSON Examples
Sample code to create the following JSON document:
{
"Title": "The Cuckoo's Calling",
"Author": "Robert Galbraith",
"Genre": "classic crime novel",
"Detail": {
"Publisher": "Little Brown",
"Publication_Year": 2013,
"ISBN-13": 9781408704004,
"Language": "English",
"Pages": 494
},
"Price": [
{
"type": "Hardcover",
"price": 16.65
},
{
"type": "Kindle Edition",
"price": 7.00
}
]
}
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Integer iIndex
Variant vDetail
Handle hoDetail
Variant vAPrice
Handle hoAPrice
Variant vPriceObj
Handle hoPriceObj
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
// The only reason for failure in the following lines of code would be an out-of-memory condition..
// An index value of -1 is used to append at the end.
Move -1 To iIndex
Get ComAddStringAt Of hoJson -1 "Title" "The Cuckoo's Calling" To iSuccess
Get ComAddStringAt Of hoJson -1 "Author" "Robert Galbraith" To iSuccess
Get ComAddStringAt Of hoJson -1 "Genre" "classic crime novel" To iSuccess
// Let's create the Detail JSON object:
Get Create (RefClass(cComChilkatJsonObject)) To hoDetail
If (Not(IsComObjectCreated(hoDetail))) Begin
Send CreateComObject of hoDetail
End
Get pvComObject of hoDetail to vDetail
Get ComAppendObject2 Of hoJson "Detail" vDetail To iSuccess
Get ComAddStringAt Of hoDetail -1 "Publisher" "Little Brown" To iSuccess
Get ComAddIntAt Of hoDetail -1 "Publication_Year" 2013 To iSuccess
Get ComAddNumberAt Of hoDetail -1 "ISBN-13" "9781408704004" To iSuccess
Get ComAddStringAt Of hoDetail -1 "Language" "English" To iSuccess
Get ComAddIntAt Of hoDetail -1 "Pages" 494 To iSuccess
// Add the array for Price
Get Create (RefClass(cComChilkatJsonArray)) To hoAPrice
If (Not(IsComObjectCreated(hoAPrice))) Begin
Send CreateComObject of hoAPrice
End
Get pvComObject of hoAPrice to vAPrice
Get ComAppendArray2 Of hoJson "Price" vAPrice To iSuccess
// Entry in aPrice will be a JSON object.
// Append a new/empty ojbect to the end of the aPrice array.
Get Create (RefClass(cComChilkatJsonObject)) To hoPriceObj
If (Not(IsComObjectCreated(hoPriceObj))) Begin
Send CreateComObject of hoPriceObj
End
Get pvComObject of hoPriceObj to vPriceObj
Get ComAddObjectAt2 Of hoAPrice -1 vPriceObj To iSuccess
Get ComAddStringAt Of hoPriceObj -1 "type" "Hardcover" To iSuccess
Get ComAddNumberAt Of hoPriceObj -1 "price" "16.65" To iSuccess
Get pvComObject of hoPriceObj to vPriceObj
Get ComAddObjectAt2 Of hoAPrice -1 vPriceObj To iSuccess
Get ComAddStringAt Of hoPriceObj -1 "type" "Kindle Edition" To iSuccess
Get ComAddNumberAt Of hoPriceObj -1 "price" "7.00" To iSuccess
Set ComEmitCompact Of hoJson To False
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
End_Procedure