StringJson

 

The StringJson function returns a value that corresponds to a jsonpath in a string in json format.

 

string @StringJson(string source, string jsonPath);

 

Parameters

string source : Target string

string jsonPath: The path to the json value to find (see the JsonPath recipe below)

 

Parameters

The json value that corresponds to the JsonPath.

 

Example 1)

buf = "{ "name": "John", "address": {"city": "Seoul", "street": "Main St."} }"

buf = @StringJson(buf,"$.name");           // result : buf = "John"

buf = @StringJson(buf,"$.address.city");   //result: buf = "Seoul"

 

Example 2)

filepath = "C:\\AutoBase\\Project\\ApiClientTest\\RESTAPIClient\\SolarPower_log.txt";
size = @FileGetSize(filepath);
handle = @FileOpen(filepath, "r");
if(handle != 0) {
@FileRead(handle, buf, size,1);
@FileClose(handle);
}
buf = @StringJson(buf,"$.inverter[0].pv");
$ST_inverter0_pv = buf;

 

Description: Read the SolarPower _log.txt file of the specified path in UTF-8 format and store the value corresponding to "$.inverter[0].pv" in the $ST_inverter0_pv tag.

 

 

Note) JSON Path Writing Guide
1. JSONPath Syntax Guide
1-1. Basic Structure
- JSON paths can start with $ symbol, which is optional
- Object properties are accessed using dot(.)
- Array elements are accessed using brackets([])

1-2. Array Access Methods
- [0], [1], [2] : Select specific index
- [*] : Select all elements
- [-1] : Select last element
¡Ø Brackets([]) are mandatory for array access

1-3. Expression Examples
For JSON starting with object:
$.store.book or store.book

For JSON starting with array:
$[0].name or [0].name
$[*].name or [*].name

1-4. Recommendations
- Including $ symbol is recommended for code clarity
- For nested structures, specifying the full path is recommended

2. Basic Syntax for Object({}) Format
$.name - 'name' value of the root object
$.address.city - 'city' value inside 'address' object
$.phones[0] - First item in the 'phones' array
$.phones[*] - All items in the 'phones' array
$.phones[*].number - 'number' values of all items in 'phones' array
$.*.city - 'city' values of all child objects

3. Basic Syntax for Array([]) Format
$[0] - First item in the array
$[*] - All items in the array
$[0].name - 'name' value of the first item
$[*].name - 'name' values of all items
$[0].items[*].value - All 'value' values in 'items' array of first item

4. Using Filters
Object Format:
$.phones[?(@.type=='mobile')] - Items where type is 'mobile'
$.items[?(@.price > 100)] - Items where price is greater than 100
$.phones[?(@.type=='mobile')].number - Number values where type is 'mobile'

Array Format:
$[?(@.category=='income')] - Items where category is 'income'
$[?(@.amount > 1000)] - Items where amount is greater than 1000
$[?(@.category=='expense')].items[*] - All items where category is 'expense'

 

Version Information

Supported Version: 10.3.6.24 or higher

 

Related helps

@StringIndexOf()

@StringSubstring()

@StringTrim()

@StringTrimEnd()

@StringTrimStart()

@StringUnicodeToAnsi()

@StringSplit()

@strlen()