Jump to content

Component: JSON Decoder (Comms: IoT/Cloud): Difference between revisions

From Flowcode Help
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead""
 
(6 intermediate revisions by 3 users not shown)
Line 5: Line 5:
|-
|-
| width="20%" style="color:gray;" | Version
| width="20%" style="color:gray;" | Version
| 1.0
| 1.1
|-
|-
| width="20%" style="color:gray;" | Category
| width="20%" style="color:gray;" | Category
Line 15: Line 15:
Allows dynamic key and value pairs to be collected from a formatted JSON string.
Allows dynamic key and value pairs to be collected from a formatted JSON string.


==Component Source Code==
==Version information==
 
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_JSONDecoder.fcfx FC_Comp_Source_JSONDecoder.fcfx]


Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_JSONDecoder.fcfx FC_Comp_Source_JSONDecoder.fcfx]
Library Version, Component Version, Date, Author, Info
4, 1.1, 10-10-24, BR, Allowed for better support of nested array data
4, 1.1, 10-10-24, BR, Removed spaces and new lines etc from the stored data
5, 1.1, 02-15-24, BR, Allowed for better support of nested array data for the FindName function


==Detailed description==
==Detailed description==
Line 26: Line 27:


==Examples==
==Examples==
===Simple Decode===
Example program showing how to use a JSON decoder component to parse a simple JSON encoded data string.
{{Fcfile|JSON_Decoder.fcfx|JSON Decoder Example}}
===Simple Encode and Decode===


Example program showing how to take data and encode it into a JSON string to be sent out over comms.
Example program showing how to take data and encode it into a JSON string to be sent out over comms.
Line 32: Line 41:


{{Fcfile|JSON_Demo.fcfx|JSON_Demo}}
{{Fcfile|JSON_Demo.fcfx|JSON_Demo}}


==Macro reference==
==Macro reference==


===FindName===
===FindName===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FindName'''
| width="90%" class="mtx-class-macrohead" | '''FindName'''
|-
|-
| colspan="2" | Searches for a name in the JSON data. Returns the data index position. Returns -1 if the name was not found. 
| colspan="2" | Searches for a name in the JSON data. Returns the data index position. Returns -1 if the name was not found. 
Line 60: Line 70:


===ParseJSON===
===ParseJSON===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ParseJSON'''
| width="90%" class="mtx-class-macrohead" | '''ParseJSON'''
|-
|-
| colspan="2" | Accepts a JSON formatted data string and stores locally in the data buffer ready for parsing. Returns the estimated number of name and data keys present. 
| colspan="2" | Accepts a JSON formatted data string and stores locally in the data buffer ready for parsing. Returns the estimated number of name and data keys present. 
Line 79: Line 89:


===ReadDataAsFloat===
===ReadDataAsFloat===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadDataAsFloat'''
| width="90%" class="mtx-class-macrohead" | '''ReadDataAsFloat'''
|-
|-
| colspan="2" | Reads the data of a specific element as a floating point value 
| colspan="2" | Reads the data of a specific element as a floating point value 
Line 98: Line 108:


===ReadDataAsNumber===
===ReadDataAsNumber===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadDataAsNumber'''
| width="90%" class="mtx-class-macrohead" | '''ReadDataAsNumber'''
|-
|-
| colspan="2" | Reads the data of a specific element as a numeric integer value 
| colspan="2" | Reads the data of a specific element as a numeric integer value 
Line 117: Line 127:


===ReadDataAsString===
===ReadDataAsString===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadDataAsString'''
| width="90%" class="mtx-class-macrohead" | '''ReadDataAsString'''
|-
|-
| colspan="2" | Reads the data of a specific element as a string value 
| colspan="2" | Reads the data of a specific element as a string value 
Line 136: Line 146:


===ReadName===
===ReadName===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReadName'''
| width="90%" class="mtx-class-macrohead" | '''ReadName'''
|-
|-
| colspan="2" | Reads the name of a specific element 
| colspan="2" | Reads the name of a specific element 
Line 156: Line 166:
==Property reference==
==Property reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
|-
|-
|-
|-
Line 167: Line 177:
| colspan="2" | Number of bytes used to store the entire data for the JSON message. Includes names and data values so make sure this is large enough to store everything you want to be able to put into a single JSON data string. 
| colspan="2" | Number of bytes used to store the entire data for the JSON message. Includes names and data values so make sure this is large enough to store everything you want to be able to put into a single JSON data string. 
|}
|}
==Component Source Code==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_JSONDecoder.fcfx FC_Comp_Source_JSONDecoder.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_JSONDecoder.fcfx FC_Comp_Source_JSONDecoder.fcfx]

Latest revision as of 14:22, 13 July 2026

Author Matrix TSL
Version 1.1
Category Comms: IoT/Cloud


JSON Decoder component

Allows dynamic key and value pairs to be collected from a formatted JSON string.

Version information

Library Version, Component Version, Date, Author, Info
4, 1.1, 10-10-24, BR, Allowed for better support of nested array data
4, 1.1, 10-10-24, BR, Removed spaces and new lines etc from the stored data
5, 1.1, 02-15-24, BR, Allowed for better support of nested array data for the FindName function

Detailed description

No detailed description exists yet for this component

Examples

Simple Decode

Example program showing how to use a JSON decoder component to parse a simple JSON encoded data string. JSON Decoder Example


Simple Encode and Decode

Example program showing how to take data and encode it into a JSON string to be sent out over comms.

The example also hows how to decode a received JSON string and pull out values.

JSON_Demo


Macro reference

FindName

FindName
Searches for a name in the JSON data. Returns the data index position. Returns -1 if the name was not found. 
- STRING Name
 
- UINT SkipCount
Number of matches to skip before returning. 
- INT Return


ParseJSON

ParseJSON
Accepts a JSON formatted data string and stores locally in the data buffer ready for parsing. Returns the estimated number of name and data keys present. 
- STRING Data
JSON data string to parse 
- UINT Return


ReadDataAsFloat

ReadDataAsFloat
Reads the data of a specific element as a floating point value 
- UINT Element
Index of the element to read 
- FLOAT Return


ReadDataAsNumber

ReadDataAsNumber
Reads the data of a specific element as a numeric integer value 
- UINT Element
Index of the element to read 
- LONG Return


ReadDataAsString

ReadDataAsString
Reads the data of a specific element as a string value 
- UINT Element
Index of the element to read 
- STRING Return


ReadName

ReadName
Reads the name of a specific element 
- UINT Element
The Index of the element to read 
- STRING Return


Property reference

Properties
Data Bytes
Number of bytes used to store the entire data for the JSON message. Includes names and data values so make sure this is large enough to store everything you want to be able to put into a single JSON data string. 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_JSONDecoder.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_JSONDecoder.fcfx