RXS_ComposeJsonNumber()
This subprocedure is used to add a JSON number element to a parent JSON Object or Array. The numeric data must be passed as an RPG character field, or converted by %Char().
Subprocedure Prototype
|
|
|
Name to assign to JSON numeric data element. If being added to an array, the value of this parameter should be *OMIT. |
|
Data to assign to JSON numeric data element. Data should be provided in a character field or converted by %Char(). Example: |
|
RXS_JsonStructureDS_t data structure containing a parent JSON Object or Json Array. |
Example Code
*--------------------------------------------------------------
* This example creates a simple JSON object, adds a numeric
* data field to it, retrieves the created JSON, and then calls
* RXS_DestroyJson() to clean up.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)
/copy QRPGLECPY,RXSCB
D JSON S Like(RXS_Var64Kv_t)
D CreateJsonDS DS LikeDS(RXS_CreateJsonDS_t)
D RootDS DS LikeDS(RXS_JsonStructureDS_t)
D itemprice S 5P 2
/free
RXS_ResetDS( CreateJsonDS : RXS_DS_TYPE_CREATEJSON );
RXS_ResetDS( RootDS : RXS_DS_TYPE_JSONSTRUCTURE );
CreateJsonDS.JsonStructureType = RXS_JSON_STRUCTURE_OBJECT;
RootDS = RXS_CreateJson( CreateJsonDS );
RXS_ComposeJsonNumber( 'id' : '7' : RootDS );
itemprice = 12.50;
RXS_ComposeJsonNumber( 'price' : %Char(itemprice) : RootDS );
JSON = RXS_GetJsonString( CreateJsonDS );
// JSON looks like:
//
// { "id": 7, "price": 12.50 }
RXS_DestroyJson( CreateJsonDS );
*INLR = *ON;
/end-free
*--------------------------------------------------------------
* This example creates a simple JSON array, adds 5 numeric data
* fields to it, retreives the created JSON, and then calls
* RXS_DestroyJson() to clean up.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)
/copy QRPGLECPY,RXSCB
D JSON S Like(RXS_Var64Kv_t)
D CreateJsonDS DS LikeDS(RXS_CreateJsonDS_t)
D RootDS DS LikeDS(RXS_JsonStructureDS_t)
D i S 3U 0
/free
RXS_ResetDS( CreateJsonDS : RXS_DS_TYPE_CREATEJSON );
RXS_ResetDS( RootDS : RXS_DS_TYPE_JSONSTRUCTURE );
CreateJsonDS.JsonStructureType = RXS_JSON_STRUCTURE_ARRAY;
RootDS = RXS_CreateJson( CreateJsonDS );
for i = 1 to 5;
RXS_ComposeJsonNumber( *OMIT : %Char(i) : RootDS );
endfor;
JSON = RXS_GetJsonString( CreateJsonDS );
// JSON looks like:
//
// [1,2,3,4,5]
RXS_DestroyJson( CreateJsonDS );
*INLR = *ON;
/end-free
*--------------------------------------------------------------
* This example creates a simple JSON object, adds a numeric
* data field to it, retrieves the created JSON, and then calls
* RXS_DestroyJson() to clean up.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)
/define RXSV6R1
/copy QRPGLECPY,RXSCB
D JSON S Like(RXS_Var64Kv_t)
D CreateJsonDS DS LikeDS(RXS_CreateJsonDS_t)
D RootDS DS LikeDS(RXS_JsonStructureDS_t)
D itemprice S 5P 2
/free
RXS_ResetDS( CreateJsonDS : RXS_DS_TYPE_CREATEJSON );
RXS_ResetDS( RootDS : RXS_DS_TYPE_JSONSTRUCTURE );
CreateJsonDS.JsonStructureType = RXS_JSON_STRUCTURE_OBJECT;
RootDS = RXS_CreateJson( CreateJsonDS );
RXS_ComposeJsonNumber( 'id' : '7' : RootDS );
itemprice = 12.50;
RXS_ComposeJsonNumber( 'price' : %Char(itemprice) : RootDS );
RXS_GetJsonString( JSON : CreateJsonDS );
// JSON looks like:
//
// { "id": 7, "price": 12.50 }
RXS_DestroyJson( CreateJsonDS );
*INLR = *ON;
/end-free
*--------------------------------------------------------------
* This example creates a simple JSON array, adds 5 numeric data
* fields to it, retreives the created JSON, and then calls
* RXS_DestroyJson() to clean up.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)
/copy QRPGLECPY,RXSCB
D JSON S Like(RXS_Var64Kv_t)
D CreateJsonDS DS LikeDS(RXS_CreateJsonDS_t)
D RootDS DS LikeDS(RXS_JsonStructureDS_t)
D i S 3U 0
/free
RXS_ResetDS( CreateJsonDS : RXS_DS_TYPE_CREATEJSON );
RXS_ResetDS( RootDS : RXS_DS_TYPE_JSONSTRUCTURE );
CreateJsonDS.JsonStructureType = RXS_JSON_STRUCTURE_ARRAY;
RootDS = RXS_CreateJson( CreateJsonDS );
for i = 1 to 5;
RXS_ComposeJsonNumber( *OMIT : %Char(i) : RootDS );
endfor;
JSON = RXS_GetJsonString( CreateJsonDS );
// JSON looks like:
//
// [1,2,3,4,5]
RXS_DestroyJson( CreateJsonDS );
*INLR = *ON;
/end-free
Data Structures
|
|
|
|
|
Internal use only |
|
|
|
Internal use only |
|
Internal use only |
|
Specifies the CCSID of the data being passed into the JSON composition subprocedures. Default is job CCSID. |
|
Specifies the CCSID that the JSON will be output as from RXS_GetJsonString(). Default is job CCSID. |